↔️
【Snowflake・BigQuery】md5のハッシュ値が合わない際の処方箋
Snowflake・BigQueryはmd5関数が使えるが、
出力結果が合わない…
といった経験があると思います。
今回はSnowflake・BigQuery間で
ハッシュ値の出力を合わせるSQLを書き残しておきます。
マイグレーションで困っている際は是非参考にしてみてください。
Snowflake→BigQueryのマイグレーションを想定した場合
値は適当に 120
を入れてますが任意の文字列を想定してます。
Snowflake
SQL
select to_char(md5_binary('120'), 'base64');
出力
2k+1xuk+dNPfhSdZn6YmQg==
BigQuery
SQL
select md5("120");
出力
2k+1xuk+dNPfhSdZn6YmQg==
Snowflake→BigQueryの結果
DWH | 出力結果 | クエリ |
---|---|---|
Snowflake | 2k+1xuk+dNPfhSdZn6YmQg== | select to_char(md5_binary('120'), 'base64'); |
BigQuery | 2k+1xuk+dNPfhSdZn6YmQg== | select md5("120"); |
BigQuery→Snowflakeのマイグレーションを想定した場合
値は適当に Hello World
を入れてますが任意の文字列を想定してます。
Snowflake
SQL
select md5('Hello World');
出力
b10a8db164e0754105b7a99be72e3fe5
BigQuery
SQL
select to_hex(md5('Hello World'));
出力
b10a8db164e0754105b7a99be72e3fe5
BigQuery→Snowflakeの結果
DWH | 出力結果 | クエリ |
---|---|---|
Snowflake | b10a8db164e0754105b7a99be72e3fe5 | select md5('Hello World'); |
BigQuery | b10a8db164e0754105b7a99be72e3fe5 | select to_hex(md5('Hello World')); |
まとめ:Snowflake↔BigQuery間のマイグレーションでmd5のハッシュ値をうまく加工しよう!
今回はSnowflake↔BigQuery間で
ハッシュ値の出力を合わせるSQLを記載しました。
md5関数を使って出力のハッシュ値が合わない…
というヒヤリをこの記事で避けてもらえれば幸いです。
Discussion