メルマガ登録
データ活用・DXに欠かせないのがデータ基盤です。ブレインパッドには、クラウドプラットフォームの知識・スキルを深化させるべく、Google Cloud 、AWS、Microsoft Azure、Snowflakeの4つのクラウドプラットフォームチームから成る「クロスファンクショナルチーム(CFT)」があります。今回は、便利な機能を多数備え、単なるDWHサービスではない機能の広がり・独自性を持つクラウド型DWHサービス「Snowflake」についてご紹介します!
こんにちは、ソリューション開発部の藤田です。
顧客企業のデータ活用を、システム開発や基盤構築の面から支えている当社のデータエンジニアリング本部(DE本部)。そのDE本部には、 Google Cloud 、AWS、Microsoft Azure、Snowflakeの4つのクラウドプラットフォームチームから成る「クロスファンクショナルチーム(CFT)」があります。(詳細はこちらの記事を参照ください)
そして今回は、Snowflakeの紹介をしたいと思います。
まず、Snowflakeについて簡単に紹介します。
Snowflakeは、米・Snowflake社が提供する「クラウド型のDWH(データウェアハウス)サービス」です。AWSのRedshiftやAzureのAzure Synapse Analytics、 Google Cloud の BigQuery と比較され、下図(図1)のようにデータの分析やデータマートの作成を行う位置付けのサービスです。コンピューティングとStorageを分離し、複数の分析処理の同時実行を実現したり、エラー発生時点など特定の日時に遡ってクエリを実行できたり、簡易にクローンを作成して分析できたりと、便利な機能を備えたサービスです。そして、AWS、Azure、 Google Cloud の各クラウドサービス上で利用可能であるのも特徴のひとつです。
SnowflakeはSaaS型のデータウェアハウスなので利用者が実行環境を準備する必要はありませんが、実態としては、AWS、Azure、 Google Cloud のクラウドサービス上で動いています。Snowflakeのアカウントを新規に作成する際には、AWS、Azure、 Google Cloud のどの環境・リージョンに作成するかを指定します。( Google Cloud のみ日本リージョン未対応:2021年12月時点)
※Snowflake単体の機能としては、各サービスで違いはありませんが、例えばStorageとの連携を考えた際に、StorageとSnowflakeが同じ環境内にあると、各クラウドサービスのプライベート接続サービスが利用できます。
次に、Snowflakeの特徴について紹介します。さまざまな特徴があるのですが、今回は機械学習や分析を行う会社にとって、”特に良い”と感じた3点に絞って紹介します。
● 機械学習・分析面での良い点
Snowflakeは、処理を行う仮想ウェアハウス(以後、WH)を分離し、各WHが必要なDatabaseStorageにアクセスすることにより、競合を回避しボトルネックが発生しないアーキテクチャとなっています(図3を参照)。WHを分けさえすれば、負荷がかかるバッチ処理同士も影響を受けず、同時に実行することができます。分析官目線でいうと、分析官による分析作業とバッチ処理が重なったり、分析官同士の分析作業が重なっても、影響が出ないということになります。
このWHは、サイズがXS~6XLまでの10種類用意されており、クエリ実行時に都度サイズの変更が可能です。アドホックなクエリを実行する場合に、軽いものはXSサイズで実行し、重いものはXLで実行するなど、都度クエリ実行時に変更できます(従来のDWHのような、サイズを決めたクラスターを作成して、その中でクエリを実行する、という方法ではなく、クエリに応じてクエリ実行サイズを指定できるという構成となっています)。また、バッチ処理においても、まずはデータの件数を取得するSQL(Select count(*) From ~ )をSサイズで実行して、件数が1万件以上であれば、その後のデータ抽出のSQL(Select * From ~)はXLサイズで実行する、などの設定も柔軟に対応が可能です。
上記のように、クエリごとにWHのサイズを簡単に変更することができます。
主な課金内容は、WHの実行時間が基準となります。秒単位の課金(最低1分間分は課金。その後秒単位)となり、WHの起動は1秒もかからず、処理完了時に手動・自動で停止可能です。そのため、クラスターの停止を忘れ、余計な課金がされていた、ということが皆無です。また、スペックを倍にすると、理論上は処理時間 が1/ 2となるため、処理は早くなったが、料金が変わらないというシチュエーションになる場合もあります。
テストで検証した際の参考値になります。4倍の性能のサイズを使用すると、処理速度が1/4に近い数字になることが確認できました。
X-Small < Small < Midium < Large < X-Largeの順番のスペックであり、MidiumはX-Smallの4倍、X-LargeはMidiumの4倍の性能があります。
分析官目線での便利機能という観点では、過去のデータを遡って検索できるTime Travel機能や、データ量を2倍にせず差分のみの増加でコピーを作成できるクローン機能があります。Time Travel機能を活用して、不具合発生時の状態に遡ってクエリを実行したり、クローン機能を活用して、自分用の分析DBをすぐに作成することができます。さらりと数行で書いていますが、利用者目線で行くと、ここの機能が一番インパクトがあるかもしれません。非常に便利です。
Snowflakeチームの活動紹介の第一弾として、Snowflakeの概要と特徴についてご紹介しました。今回は、Snowflake単体での特徴を紹介しましたが、Snowflakeは単体で利用するというよりは、データの取得元や連携先があり、それらの機能と連携しながら活用するサービスです(図6を参照)。
今後は、Snowflakeと各種サービスとの連携方法などについて、調査をしていきたいと考えていますので、調査結果についても定期的に情報発信していきます。
データエンジニアリング本部では、中途採用を積極的に行っています。
ご興味がある方はお気軽にご連絡ください。
■データエンジニアリング部の紹介資料
https://speakerdeck.com/brainpadpr/brainpad-de-202107ver
あなたにオススメの記事
2023.12.01
生成AI(ジェネレーティブAI)とは?ChatGPTとの違いや仕組み・種類・活用事例
2023.09.21
DX(デジタルトランスフォーメーション)とは?今さら聞けない意味・定義を分かりやすく解説【2024年最新】
2023.11.24
【現役社員が解説】データサイエンティストとは?仕事内容やAI・DX時代に必要なスキル
2023.09.08
DX事例26選:6つの業界別に紹介~有名企業はどんなDXをやっている?~【2024年最新版】
2023.08.23
LLM(大規模言語モデル)とは?生成AIとの違いや活用事例・課題
2024.03.22
生成AIの評価指標・ベンチマークとそれらに関連する問題点や限界を解説