Snowflake-データロード検証

Snowflake
この記事は約3分で読めます。

こんにちは!日比です!
みなさんはSnowflakeのロード速度ってどれくらいか気になったことはないでしょうか?
ファイル形式やファイル数、ウェアハウスサイズなど
ロード時間にどのような影響があるのかを検証で確認しました。

本記事でわかること

  • データロードの概要
  • データロードに最適なファイル形式

データロードの概要

まずはSnowflakeのデータロードについて振り返りましょう。

データロードのやりかた

基本的なやり方はデータファイル(CSV形式など)を用意し
各クラウドのストレージに配置してロードを行います。

クラウド契約済の場合は、そのクラウドのストレージに配置、
特にクラウド契約がない場合は、Snowflakeが用意したストレージに配置します。
ちなみに前者をSnowflakeから外側にあるので外部ステージ、
後者をSnowflake内部にあるので内部ステージとよびます。

ロード方法やパフォーマンスに大きな差異はありませんので、
契約や利用状況に応じて、やりやすい方を選んでもらえれば結構です。

※ただし、ご契約のクラウド/リージョンと、Snowflakeのクラウド/リージョンが異なる場合
 コスト面やパフォーマンス面で不利になります。同一のものが推奨されます。

サポートされているファイル形式

Snowflakeでロードするデータファイルは、様々なファイル形式がサポートされています。
・ファイル分割 
   ファイル分割を行う方がロードが速いです。
・圧縮の有無
   ファイルを圧縮しているかどうか
・ファイル形式
   CSV、JSON、XMLなど

データロード検証

検証パターン

様々なファイル形式でどれが最適なのか
また、ウェアハウスサイズの差異による影響を検証してみました。
検証パターンは下記のとおりです。

検証概要

検証概要は下記のとおりです。

検証結果

検証結果は下記のとおりです。
・ウェアハウスのサイズ
 ウェアハウスサイズに比例して、ロード速度も向上しました。
・圧縮有無
 圧縮有無による大きな差異はみられませんでした。
・ファイルサイズ
 推奨サイズの250MBまでは大きな差はありませんでした。
・ファイル数
 5GBの圧縮ありはファイルが1つとなり、ロードに時間を要しました。

※5GBの圧縮なしは、CSVデータ作成時に制約にひっかかったため対象外としています。

まとめ

実際にロードを行う際は、下記を検討するとよいでしょう。
・単一ファイルは避けましょう。
 →可能なかぎりファイル分割を行うことを推奨します。
・時間短縮のためにウェアハウスを調整しましょう。
 ※まずはMサイズあたりで検証を行い、最適なサイズをみつけましょう。
・ファイルの圧縮はデータソースからの転送時間などを考慮し決定しましょう。

いかがでしたでしょうか。
本検証がみなさんの参考になれば幸いです。

コメント

タイトルとURLをコピーしました