バッチおよびストリーミングデータパイプラインをダイナミックテーブルで再構築
Snowflakeのダイナミックテーブルのプレビュー開始以来、私たちは何百ものお客様と協力し、高品質のデータを迅速かつ大規模に生成する際の課題を把握してきました。最大の課題:データパイプラインはますます複雑化しています。
このような複雑さの増大は、さまざまな要因によるものです。顧客は増え続けるデータニーズに対応するために、バッチデータとストリーミングデータにまたがるパイプラインのオーケストレーション、さまざまなベンダーにまたがるスケーラブルなインフラストラクチャーの管理、さらに多くのデータセットにまたがるより高度な変換ロジックの開発に取り組んでいます。
ダイナミックテーブル:Snowflakeで最も迅速に採用されている機能の1つ
Snowflakeでは、データパイプラインのエンジニアリングに関する明確な原則を掲げ、この複雑さに対処しています。シンプルに保つ。ダイナミックテーブルは、複数の変換段階にわたってバッチデータとストリーミングデータを継続的に処理するデータパイプラインを構築する最も簡単な方法です。ダイナミックテーブルは、Snowflakeの安全かつスケーラブルなデータクラウド上に構築されており、外部オーケストレーションなしで管理できると同時に、簡単な宣言型SQLセマンティクスによって幅広いユースケースのデータエンジニアリングを簡略化します。
お客様はメモを取っています。ダイナミックテーブルは、Snowflake史上最速で採用されている機能の1つです。毎日何千ものアクティブなお客様がプレビューに参加し、それぞれのユースケースで試し、製品を形作っています。
ボストン小児病院は、Snowflake上で最新のストリーミングアーキテクチャを構築しているお客様の1つです。自動オーケストレーションにダイナミックテーブルを活用することで、使用するETLツールの数を減らすと同時に、増分処理、依存関係管理、データ型管理から、ロジックの簡略化、エラー処理、レイテンシーの削減まで、あらゆることを改善しました。
このような強力なプレビューステージの採用により、ダイナミックテーブルの精度も大幅に向上しました。もちろん、インフラストラクチャーのストレステストも行いました。さらに重要なのは、クリティカルなギャップに関する重要なインサイトを得たことで、宣言型と増分の両方の処理パイプラインのさまざまなユースケースの実行経験が得られ、すでに100以上のユースケースを実稼働に持ち込むことができました。
これらの知見を踏まえ、ダイナミックテーブルがAmazon AWS、Microsoft Azure、Google Cloudでグローバルに一般提供されるようになったことを発表します。
ダイナミックテーブルとは
ダイナミックテーブルは、データエンジニアリングを加速し、アナリティクス、AI、アプリケーションにキュレートされたデータを提供するために役立ち、処理パイプラインのすべての段階で使用できる新しいタイプのテーブルです。毎日更新する必要があるバッチデータでも、数分で処理する必要があるニアリアルタイムデータでも、ダイナミックテーブルを使用すると、構築、運用、進化が容易なデータパイプラインを作成できます。
お客様がダイナミックテーブルを好む理由はいくつかあります。
宣言型パイプライン:変換ロジックを期待される結果としてのみ表現することで、パイプラインを宣言的にプログラミングします。そのための手順について心配する必要がなくなるため、データパイプラインの複雑さが大幅に軽減されます。
1.透過的なオーケストレーション:ダイナミックテーブルを連結し、線形連鎖から有向グラフまで、さまざまな形のパイプラインを作成します。Snowflakeは、パイプライン全体のデータ鮮度目標に基づいてパイプライン更新のオーケストレーションとスケジューリングを管理します。これはダイナミックテーブルの最も愛されている機能の1つであり、パイプライン開発を大幅に簡略化します。
2.増分処理によるパフォーマンスの向上:増分処理に適した好ましいワークロードの場合、ダイナミックテーブルは同等の完全更新と比較して10倍のパフォーマンス向上を実現できます(社内テストに基づく)。
3.バッチからストリーミングへの1つの切り替え:ALTERコマンドで変更できる単一のパラメータを使用して、パイプライン内のデータの更新頻度を制御できるため、コストとデータの鮮度のバランスを取ることができます。
4.言語の選択:ダイナミックテーブルはSQLに幅広く対応しており、Pythonもサポートしているため、好みの言語を使用できます。
5.運用:ダイナミックテーブルは完全にオブザーバブルであり、Snowsightオブザーバビリティを介して直接簡単に操作できます。これにより、独自のオブザーバビリティアプリを構築するためのプログラムアクセスが提供されます。
一般提供の新機能
ダイナミックテーブルに馴染みのない方もいらっしゃるかもしれませんが、一般提供にはエクスペリエンスをさらに豊かにするさまざまな新機能が含まれています。
1.共有とコラボレーション:Snowflakeの共有およびコラボレーション機能を使用して、リージョンやクラウドをまたいでダイナミックテーブルを共有できるようになりました。ダイナミックテーブルを共有することで、準備されたデータセットやデータ製品を組織内のコンシューマー、パートナー組織、またはより広範なデータクラウドコミュニティと簡単に共有できます。これにより、指定した頻度で最新状態を維持する、クリーニング、エンリッチメント、変換されたデータセットをシームレスに共有できるようになります。
2.災害復旧とレプリケーション:ダイナミックテーブルは、Snowflakeレプリケーションインフラストラクチャを通じて高可用性をサポートします。Snowflakeの災害復旧ソリューションのサポートを受けているため、安心して本番パイプラインを構築できます。
可観測性:ダイナミックテーブルパイプラインを簡単に操作できるようにすることは、Snowflakeの最重要目標の1つでしたが、その実現に向けて順調に進んでいます。Snowsightとプログラマティックインターフェイスの両方でダイナミックテーブルを監視できるようにするたくさんの新機能が追加されました。Snowsightでは、新しいアカウントレベルのビュー、ウェアハウス消費の可視化、更新の一時停止と再開の機能が追加されました。また、グラフと更新履歴も改善しました。可観測性機能では、新しいアカウント使用状況ビューの追加、情報スキーマ関数の保持期間の延長、Snowflake可観測性インターフェイス全体での一貫したメタデータのvsupportが追加されました。
4.データクラウドの統合:Snowflakeデータクラウドのメリットを享受できるよう、クラスタリング、一時的なダイナミックテーブル、ガバナンスポリシー(ダイナミックテーブルとダイナミックテーブル自体のソース)のサポートを追加しました。
5.スケーラビリティ:アカウント内に4倍のダイナミックテーブルを作成し、別のダイナミックテーブルにフィードするダイナミックテーブルソースを10倍に増やすことができるようになりました。作成できる有向非巡回グラフ(DAG)の深さに制限はなくなりました。
6.クエリ進化とSELECT *のサポート:ベーステーブルに新しい列を追加すると、ダイナミックテーブルは自動的に進化して新しい列を吸収し、ダイナミックテーブルを再構築することなく段階的に修復されるようになりました。
7.新しいドキュメント:パフォーマンスの最大化やパイプライン問題のトラブルシューティングのための開発ベストプラクティスやガイドなど、さまざまな改善点を含む待望の新しい記事をドキュメントに追加しました。
これはほんの始まりにすぎません。また、システムの安定性とスケーラビリティだけでなく、更新性能をアップグレードするために、幾度も徹底的な改良を重ねてきました。これらの改善によって製品のインタラクションが変わることはありませんが、ダイナミックテーブルパイプラインを開発から実稼働に移行する際には良好な結果が期待できます。
私たちは、お客様のあらゆるユースケースに対応できるよう、意欲的なパフォーマンス目標を定めています。この目標に向かって進んでいく中で、特にデータパターンやクエリ構築が増分処理に適さない場合に、ダイナミックテーブルのパフォーマンスを最大限に高め、効率的な更新パイプライン戦略のメリットを享受する方法をお客様に分かりやすく提供していきたいと考えています。判断に迷った場合は、SHOW DYNAMIC TABLESコマンドでダイナミックテーブルの更新モードと、ダイナミックテーブルが選択された理由を確認してください。パイプラインのパフォーマンスを最適化するには、このパフォーマンスガイドを参考にしてください。
ダイナミックテーブルのプレビュー以降、データエコシステムにまたがるパートナーは、さまざまなユースケースで顧客がより適切かつ迅速に更新結果を得られるように、ダイナミックテーブルをテストし、統合してきました。パートナーのリストには以下が含まれます。Amazon QuickSight、AtScale、Astrato、Census Data、Coalesce.io、dbt、Domo、Hightouch、Looker(Google)、Microsoft PowerBI、MicroStrategy、Qlik、Sigma、Streamkap、Tableau(Salesforce)、TDAA、ThoughtSpot
ダイナミックテーブルの使用を開始するには、ダイナミックテーブルを使用したパイプラインの構築に関するこのビデオを視聴するか、こちらのクイックスタートガイドをご覧ください。