データエンジニアリング

より良いデータパイプラインの構築:SnowflakeでのSQLとPythonを使用した構築とオーケストレーション

データ変換は、AI、アナリティクス、アプリケーションのイノベーションを強化する、現代のデータオペレーションのエンジンルームです。堅牢でスケーラブルなデータパイプラインを構築するには、効果的なデータ戦略の中核を成す要素としての変換が不可欠です。本日は、データパイプラインの構築とオーケストレーションのための、Snowflakeの最新の製品機能をご紹介します。

目まぐるしく変化する現代のAI時代において、パイプラインは下流のデータサクセスの基盤となります。そのため、データエンジニアは極めて重要な立場に置かれています。しかし、多くの人は、常に競合する優先事項に対処しています。 

  • コンピュートリソースとインフラストラクチャの構成と管理

  • 異なるスタック間でのデバッグ

  • 上流のデータ変更の追跡と対応

  • 開発の俊敏性とセキュリティの確保

  • 増加するデータ(特に非構造化データ)に伴う複雑さに対処する

こういった摩擦点への対処こそが、Snowflakeの強みです。長年にわたり、Snowflakeはこれらの複雑さの軽減に重点的に取り組んでおり、組織のワークフローを合理化し、データチームが真に重要なイノベーションの推進に集中できるプラットフォームを設計してきました。未加工データレイヤーの奥深くまで掘り下げ、ソースから宛先へキュレートされたデータセットとしてデータを送り出すことで、データエンジニアが運用オーバーヘッドに煩わされるのを防ぎ、イノベーションの原動力とすることができます。

これを実現するために、コラボレーションをサポートするSQLワークフローからPythonのより複雑なパイプラインまで、データエンジニアリング環境全体の複雑なワークフローを簡素化する新機能と改善された機能を発表します。

Figure 1: Snowflake supports building data pipelines with both SQL and Python transformations, as well as flexible orchestration options to streamline the data lifecycle and support a wide range of use cases and data engineering personas.
Figure 1: Snowflake supports building data pipelines with both SQL and Python transformations, as well as flexible orchestration options to streamline the data lifecycle and support a wide range of use cases and data engineering personas.

SQLでアクセス可能なデータパイプライン

多くの組織にとって、SQLパイプラインはデータ変換への最も利用しやすいエントリーであり、データアナリストなどのより幅広いチームメンバーが利用できるようになるため、データエンジニアの負担が軽減されます。さまざまなSQLスキルのユーザーが構築できるこれらのパイプラインのモジュール性により、何百ものワークフローをスケーラブルかつ確実に実行できます。この民主化されたアプローチは、強固で適応性のある基盤の確保に役立ちます。

Snowflake上のdbtプロジェクトの紹介(近日中にパブリックプレビュー開始)

dbtは、データウェアハウス内のSQLおよびSnowparkデータ変換ワークフローにソフトウェアエンジニアリングのベストプラクティスと効率性をもたらすため、世界中のデータチームが愛用しています。dbtをSnowflakeの自動化サービスとマネージドサービスに直接統合することで、データエンジニアはインフラストラクチャーの管理や複数のシステムにまたがる可観測性の統合ではなく、これらのパイプラインの構築、展開、監視に注力できるようになりました。

Snowflakeユーザーは、新しいワークスペースインターフェース内で、Snowflake(パブリックプレビュー中)でdbtプロジェクトをシームレスにネイティブに作成、アップロード、編集、実行できるようになりました。このネイティブ統合により、開発が合理化され、変換されたデータの提供が高速化されます。

動的テーブルの更新

動的テーブルは、バッチパイプラインとストリーミングパイプラインのための宣言型処理フレームワークを提供します。このアプローチにより、パイプライン構成が簡素化され、自動オーケストレーションと継続的で増分的なデータ処理が提供されます。ユーザーは、DAGの可視化を通じて包括的な可視性を獲得し、リアルタイムのアラートを受信し、統合されたデータ品質機能のメリットを享受して、より効率的で信頼性の高いデータパイプライン管理につながります。更新内容:

  • Apache Icebergのサポート(現在一般提供中):動的テーブルに、Apache Icebergなどのオープンテーブル形式をサポートする拡張された機能が追加されました。ユーザーは、宣言型定義、自動オーケストレーション、増分処理により、Apache Iceberg™テーブル(Snowflakeまたは外部カタログを使用)上でバッチおよびストリーム処理パイプラインを構築できます。得られたデータは任意のIcebergエンジンでクエリできます。 

  • 低レイテンシ(プライベートプレビュー中):エンドツーエンドのレイテンシー(取り込みから変換まで)が約15秒のリアルタイムパイプラインを作成します。 

  • パフォーマンスの強化(一般提供):改善されたOUTER JOINの増分リフレッシュ、QUALIFY RANK () = 1、ウィンドウ関数、クラスタ化されたテーブル、およびCURRENT_TIMESTAMPとIS_ROLE_IN_SESSIONの新しい増分最適化を使用する。

  • 完全性の定義(一般提供):新しいSQL拡張機能である不変のWHEREとINSERT ONLYにより、データの完全性をより詳細に制御できるようになり、ユーザーは更新や削除を防止したり、条件に基づいてデータ変更を制限したり、移行のために既存のパイプラインからデータをバックフィルしたりできます。

エンタープライズグレードのPython開発

Snowparkでは、エンタープライズグレードのPython開発により、Snowflake内で直接データパイプラインを構築、拡大縮小できます。使い慣れたPython構文とpandas DataFramesを使用し、伸縮性のあるエンジンを使用して複雑な変換をシームレスに実行するため、データの移動がなくなり、効率的な大規模データ処理が実現します。Snowparkは、インフラストラクチャーのオーバーヘッドなしで増え続けるデータおよび処理需要に対応し、パワフルでスケーラブルなPythonソリューションを提供します。

pandas on Snowflakeアップデート

pandas on Snowflakeは、pandasの柔軟性とSnowflakeのスケーラビリティを統合し、堅牢なPythonデータパイプラインの開発を簡素化します。ユーザーができること:

  • Snowflakeテーブル、ビュー、Icebergテーブル、動的テーブル、一般的なファイル形式(CSV、Parquet、Excel、XML)へのアクセスや保存など、さまざまなデータソースと統合

  • コードを変更することなく、最初のプロトタイプから完全な実稼働環境まで拡張できるpandasパイプラインを開発する

  • 使い慣れたpandas構文を利用し、Snowflake Cortex AI LLM関数などのSnowflakeの分析機能を柔軟なデータ変換に活用してAIを活用したワークフローを開発する

Snowflakeでpandasを使用すると、開発者はIcebergテーブルから読み取ってエンドツーエンドのPythonデータパイプラインを構築し、pandasでデータを変換し、得られたパイプラインを動的Icebergテーブルとして保存できます。

ハイブリッド実行(プライベートプレビュー中)を備えたSnowflake上のpandasは、すべてのデータスケールでpandasパイプラインをサポートしています。この革新的な新機能は、大量のデータセットをSnowflakeにプッシュダウンするか、標準のpandasでメモリ内に格納することで、pandasクエリを実行するための最適なバックエンドをインテリジェントに決定し、迅速なインタラクティブなテストと開発をサポートします。 

Figure 2: Hybrid execution for pandas on Snowflake intelligently determines whether to run queries by pushing down to Snowflake or locally in-memory with vanilla pandas.
Figure 2: Hybrid execution for pandas on Snowflake intelligently determines whether to run queries by pushing down to Snowflake or locally in-memory with vanilla pandas.

Snowparkの最新情報

Snowparkは、Snowflake内でPythonやその他の言語を使用したデータ変換を可能にすることで、データ開発を高速化します。この拡張性はSnowflakeプラットフォームのセキュリティとスケーラビリティと緊密に統合されているため、開発者はデータの移動や個別のインフラストラクチャ管理を行うことなく、使い慣れたツールを使用できます。

Snowparkの実行により、お客様は従来のSparkと比較して平均5.6倍の速度と41%のコスト削減を達成しました。[1]

Snowparkは、データ統合、パッケージ管理、安全な接続性にわたってサポートが拡張され、言語をまたいで安全かつ効率的にデータを扱えるようになりました。更新内容:

  • データ統合:Python DB-APIサポート(プライベートプレビュー中)により、開発者はSnowparkを使用して外部リレーショナルデータベースからSnowflakeに直接データをプルできるようになりました。Python XML行タグリーダー(プライベートプレビュー中)では、シンプルな行タグオプションを使用して、ネスト化された大きなXMLファイルをロードできます。ユーザーはXMLドキュメントの関連する部分のみを取り込み、構造化された表形式の出力を受け取って下流で処理できます。 

  • パッケージ管理:アーチファクトレポジトリ(一般提供)を使用すると、パッケージ管理が簡素化され、Snowparkユーザー定義関数(UDF)とストアドプロシージャ内のPyPIからパッケージを簡単にダウンロードしてインストールできます。カスタムパッケージを使用している場合は、ネイティブコードでパッケージをアップロードし、UDFまたはストアドプロシージャの一部としてインポートできるようになりました。 

  • Python UD(T)Fからのファイル書き込み(現在一般利用可能):この機能の導入により、特にUDFでカスタムファイルの並列書き込みが必要な場合に、Snowparkのデータエンジニアリングユースケースの全体的な機能が拡張されます。たとえば、カスタムファイル(モデルファイル、PDFや画像などの非構造化ファイル、JSONなどの半構造化ファイル)を関数からステージに書き込んだり、ステージ上のデータパイプラインの一部としてファイルを変換したりします。行指向のavroをJSONファイルに変換し、大きなファイルをダウンストリームアプリケーションの一部として使用するために小さなファイルに分割できるようになりました。

ネットワークルールでのワイルドカードのサポート、ネットワークルールでのあらゆるエンドポイントへのアクセスをすべての人に許可するサポート、AWSリソースへの接続を簡素化するAWS IAMとの統合などの機能により、Snowparkから外部データソースとエンドポイントに簡単にアクセスできるようになりました。さらに、AWS Gov(一般提供)、Azure Gov(一般提供)、Google Cloud Platform(プライベートプレビュー)などの追加のリージョンで、外部アクセスのアウトバウンドプライベートコネクティビティが利用可能になりました。

パイプラインの自動化

自動オーケストレーションは、動的テーブルなどの機能により変換ワークフローに組み込まれています。また、Snowflakeタスクを使用した追加のネイティブサポートにより、信頼性と拡張性に優れたフレームワークが提供され、運用オーバーヘッドなしで一貫した実行が可能になります。

タスクとサーバーレスタスクの更新

Snowflakeタスクとサーバーレスタスクは、複雑なワークフローをSnowflake内で直接実行される一連の依存SQLステートメントまたはPythonコードとして定義できるため、オーケストレーションに適しています。外部オーケストレーションツールは必要ありません。この緊密な統合により、管理が簡素化され、Snowflakeの堅牢なコンピュートリソースを活用して信頼性とコスト効率に優れた自動化が実現します。この1年間、私たちはこれらのネイティブオーケストレーション機能を継続的に改善してきました。 

  • タスクグラフの強化:よりリッチなワークフローを定義し、新しいビューと通知でデータパイプラインをモデリング。タスクグラフが正常に完了したら(ダウンストリームアクションをトリガーできる)、クラウドメッセージングサービスに通知を送信し、タスク実行の依存関係のグラフ表現とタスクのメタデータ情報を確認できるようになりました。

  • トリガーされるタスク:SQLとSnowparkのイベントベースの処理により、ソーステーブルに新しいデータが届くと即座にタスクを実行。スケジュールや仮想ウェアハウスを指定せずにタスクを作成することもできます。さらに、データがデータ共有またはディレクトリテーブルに到着したときに自動的にタスクを実行できます(テーブル、ビュー、動的テーブル、Icebergの以前のサポートに加えて)。 

  • 低レイテンシのタスクスケジューラ:10秒のスケジュールでデータパイプラインを確実にオーケストレーションし、頻繁にデータを処理。

  • 最適化とガバナンスの制御:サーバーレスタスクのコストとパフォーマンスの最適化を制御します。 

  • Snowsightでタスクを編集する:アクションメニューから既存のタスクを編集し、スケジュール、コンピュート、パラメータ、コメントを変更できます。 

  • Python/JVMの自動化:サーバーレスタスクでUDF(Python/JVM)とストアドプロシージャを自動化。

Snowflakeを利用したより包括的なパイプラインエクスペリエンス

Snowflakeは、最新のデータ運用の中心エンジンとして進化を続けており、データパイプラインの構築とオーケストレーションを簡単かつ効率的に行うための総合的なツールスイートを提供しています。SQLのアクセシビリティ、dbtのパワー、Snowparkやpandasを通じたPythonの柔軟性など、これらの最新の進歩により、データエンジニアは運用上の複雑さを克服し、イノベーションの推進に注力できるようになります。Snowflakeは、コードとデータの距離を縮め、ワークフローを合理化し、さまざまなユースケースやスキルセットのパフォーマンスを向上させることで、データチームが現在の目まぐるしく変化するAIドリブンな状況でデータの可能性を最大限に引き出すことに取り組んでいます。

これらの機能について詳しく知りたい方は、2025年7月29日のData Engineering Connectにご参加ください。 

 


将来の見通しに関する記述:

このページには、Snowflakeが将来提供する製品に関する記述を含め、将来の見通しに関する記述が含まれていますが、これはいかなる製品の提供も約束するものではありません。実際の成果や提供物は異なる可能性があり、既知および未知のリスクおよび不確実性の影響を受けます。詳細については、最新の四半期報告書(10-Q)をご覧ください。

 

1 2022年11月から2024年1月までの期間について、お客様の実稼働ユースケースと概念実証(PoC)の実践におけるSnowparkとマネージドSparkサービスの速度とコストの比較結果に基づく調査結果はすべて、実データによる実際のお客様の結果を要約したものであり、ベンチマークに使用される作られたデータセットを表すものではありません。

Subscribe to our blog newsletter

Get the best, coolest and latest delivered to your inbox each week

30日間の無料トライアルを開始する

Snowflakeの30日間無料トライアルで、他のソリューションに内在する複雑さ、コスト、制約の課題を解決するAIデータクラウドを体験できます。