[Snowflake Summit 2025参加レポート]新機能 Snowflake Openflow を利用したCDC連携
ナウキャストでデータエンジニアをしている島尻です。
Snowflake Summit 2025への参加レポートとして、「Real-Time Insights at Scale: OLTP Database CDC Streaming with Snowflake Openflow, DE201B」というセッションのレポートを速報で公開します。
はじめに
Summit公式から引用した本セッションの概要は以下の通りです。
In today’s fast-paced data landscape, businesses need real-time insights powered by transactional data. CDC streaming has emerged as a critical technology to ensure that operational databases seamlessly feed analytics and AI applications without disrupting core business operations. Join us in this session as we unveil Snowflake's new OLTP database CDC streaming connectors, purpose-built to bridge transactional data with Snowflake in real time.
セッション概要にはSnowflake Openflow(以下「Openflow」)のことが言及されていませんが、内容としてはOpenflowのSQL Serverコネクタを利用してSnowflakeへのCDC連携を行うデモンストレーションがメインでした。
OpenflowはSummit前に発表されていましたが、今回のPlatform Keynoteでも目玉の新機能として紹介されていましたね!
Snowflake Openflow とは?
Snowflake Openflowは、多様なデータソースからSnowflakeへデータを移動させるためのプラットフォームです。この技術の基盤には、オープンソースのApache NiFiがあります。
このセッションでOpenflowのキーコンセプトと謳っていたのは、「Deployments and Runtimes (data plane)」の部分で、2つのデプロイ方法が提供されています。
- Deployed in Snowflake:
- Snowflakeが管理するコンテナ (Snowpark Container Services: SPCS)上にデプロイ
- Deployed in Customer VPC (Bring Your Own Cloud):
- 自社のVPC内に実行環境をデプロイ
後者のBYOC (Bring Your Own Cloud) モデルは、データを自社のVPCの外に出すことなく安全にSnowflakeへ連携できるため、セキュリティやガバナンスを重視する企業にとって非常に大きなメリットになります!
また、OpenflowについてはすでにSnowflakeの公式ドキュメントが公開されておりますので、以下から詳細はご確認いただけます。
なお、デモブースでOpenflowのデモをやっていたSnowflake社の方にも話を聞いてみたのですが、Openflow自体は「ELT」ツールではなくあくまでも 「EL」ツールの位置付け ということでした。つまりOpenflowは「E(データ抽出)」と「L(データロード)」のみを行い、「T(データ加工)」の部分はDynamic Tableや、今回発表されたdbt Projects in Snowflakeなどに行わせる、という設計思想のようです。
デモンストレーション:SQL ServerからSnowflakeへのCDC
セッションでは、SQL ServerからのCDC連携を設定するデモンストレーションが行われました。
本記事では、セッションで取り上げられた内容を中心に紹介しますが、詳細な手順などは以下の公式ドキュメントを参考にしてください。
1. 準備 (SQL Server側)
まず、ソースとなるSQL Server側で、CDCを行うためにChange Tracking機能を有効化します。
ALTER DATABASEでデータベース全体のChange Trackingを有効にした後、対象テーブル(Orders, OrderDetailsなど)に対しても個別に有効化しています。
また、対象のソーステーブルに対する適切な権限を持ったユーザーも、SQL Server側で用意する必要があります。
2. 準備 (Snowflake側)
CDCの宛先となるデータベースや、そのデータベースに対する権限を持つユーザーなどはあらかじめセットアップしておきます。
3. Openflowの設定
ここから、いよいよOpenflowの設定です。SnowsightからOpenflow用のUIに飛ぶことができます。
コネクタの一覧から Microsoft SQL Server を選択し、ランタイムに追加します。
ランタイムのキャンバス上に配置された「sqlserver-connector」をクリックすると「Snapshot Load」と「Incremental Load」の2つのアイコンが出現します。
こちら2つは以下の処理を行うものです(デモブースでも聞いてみました!)
- Snapshot Load
- 最初の同期
- ソースのデータをSQLで全件SELECTして取得してくる
- Incremental Load
- 2回目以降の同期
- ソースDBのログベースでCDCレプリケーションを行い、差分をMERGEする形でターゲットに同期する
BYOCの説明スライドからイメージ抜粋
このあたりは一般的なCDCレプリケーションツールと同じような仕様ですね。
Incremental Loadのアイコンをクリックすると以下のような画面に遷移しました。画面の見づらさが否めないですが、この辺りでどのような追加設定ができるのかは、Openflowを実際に触って確かめたいところです。
この後のコネクタ設定画面では、接続先のデータベース情報や認証情報に加え、連携対象のテーブルを指定します。
デモでは、dboスキーマ配下の全テーブルを対象とするために、正規表現 dbo.*
を使用していました。デモの写真はここまでですが、GUIベースの簡単な設定でデータパイプラインを構築できることが分かります。
デモが終わった後、現在Openflowで利用できるコネクタと、今後利用できる予定のコネクタ一覧がスライドで投影されていました。現状GAになっているのはPostgreSQLコネクタとMySQLコネクタのようです。Oracleとの戦略的パートナーシップ締結に伴う、Oracleコネクタについても言及されており、現在はPrPrですが鋭意開発中である旨が伝えられていました。
所感・まとめ
Openflowは、Snowflakeへのデータロードをネイティブにサポートする機能ということで、これまでサードパーティのETL/ELTツールが担ってきた領域をSnowflakeが取り込み、データのIngestion機能まで含めてワンプラットフォームで提供していくという姿勢を感じました。今回のデモで紹介されたCDC機能も、一般的なCDCレプリケーションツールと同じような事前設定、同期仕様だったため、CDCの考え方に慣れているユーザーであれば、それほど違和感なく使えるかなとも思いました。
また、OpenflowはあくまでもEL機能という位置付けで、T(データ加工)部分は別の機能(Dynamic Tableやdbt Projects in Snowflake)に担わせる、という役割分担も納得のいくものでした。
まだOpenflowを実際に触れているわけではないので若干妄想も混じってしまうのですが、筆者がOpenflowの発表や今回のセッションを聞いて気になっていることを書き記します。
-
Oracleとの連携強化
- 今回のSummitでは、Oracleとの戦略的パートナーシップを結ぶことが発表されました。その一環で、OracleのXStream APIを利用し、Oracle Golden Gateなどの外部ツールを利用せずとも、OpenflowのOracleコネクタを使ってCDC連携が可能になる見込みです。まだこのコネクタは現在開発中とのことですが、特にエンタープライズのSnowflakeユーザーは、Oracleからのデータ連携ニーズがあるケースも多いと思うので、Oracleコネクタのリリースが楽しみです!
-
非構造データの取り込み
- Snowflakeが去年買収したDatavoloは、非構造のマルチモーダルデータの統合に力を入れていたツールであるため、今回のOpenflowも構造化データだけでなく非構造データも取り込みやすくする、という意図があるはずです。また、以下の公式ブログ記事では、Snowflakeに取り込む前に非構造化ファイルを解析・前処理する機能も搭載しているという旨が書かれているため、このあたりの機能も実際にOpenflowを触って確かめてみたいです。
https://www.snowflake.com/en/blog/openflow-revolutionizes-data-movement-ai/
- Snowflakeが去年買収したDatavoloは、非構造のマルチモーダルデータの統合に力を入れていたツールであるため、今回のOpenflowも構造化データだけでなく非構造データも取り込みやすくする、という意図があるはずです。また、以下の公式ブログ記事では、Snowflakeに取り込む前に非構造化ファイルを解析・前処理する機能も搭載しているという旨が書かれているため、このあたりの機能も実際にOpenflowを触って確かめてみたいです。
-
Terraform対応
- 今回Summitに参加した弊社のエンジニアメンバーが、BuildersHubというSnowflake社のエキスパートに色々質問できるエリアで質問したところ、 OpenflowがTerraform対応する予定がある(ロードマップに入っている) という答えが返ってきたとのことでした。ELT周りをGUIで好き勝手に開発されてしまうと、誰もメンテできないワークフローが大量生産されるリスクがあるので、IaCで管理できるようになるのは嬉しいですね!こちらもリリースが楽しみです。
-
ELTツールとのエコシステムの関係性について
- これまでSnowflakeは、他ツールとの連携を強化してSnowflakeエコシステムを作り上げるという世界観を大事にしていました。セマンティックビューの発表などを聞く限りは、いわゆるフロントのBIなどはまだこの方向性が続きそうですが、データ加工領域ではdbt Projects in Snowflakeの発表、データのIngestion領域は今回のOpenflowの発表があり、ELTをワンプラットフォームで完結できるように、というメッセージも受け取りました。Openflow自体はコネクタ数もまだ少なく、現時点ではデータソースが限られているライトユーザー向けの機能と捉えることはできますが、今後本格的にコネクタ数を増やしてOpenflowユーザーを広げていくのか、またその時には他のELTツールとのエコシステム関係はどうするのか、などが個人的には気になりました。
-
GUI画面の操作感
- これはまだ実際に触ってみないとなんとも言えないですが、デモを見た感想としては画面遷移がわかりづらい印象がありました。EL領域に特化していて複雑なデータ加工定義がないのであまり問題ないかもしれないですが、開発者体験としてどういう印象を持つのかは気になったため、実際にOpenflowを検証で操作してみて確かめたいところです。Terraform対応してコードベースでの管理ができるようになれば、また印象は変わるかもしれません。
色々気になる点があるのは正直なところですが、Snowflakeのネイティブなデータ統合機能は待望だったので、Openflowのリリース自体はとても嬉しかったです!今後のリリース情報も引き続きウォッチしていこうと思います。
Discussion