↔️

【Snowflake・BigQuery】md5のハッシュ値が合わない際の処方箋

2024/09/06に公開

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