各製品の資料を入手。
詳細はこちら →CData
こんにちは!リードエンジニアの杉本です。
今回は、Databricks が提供するデータ仮想化機能Lakehouse Federation とCData Connect Cloud を活用して、Snowflake への接続をDatabricks に追加する方法をご紹介します。
統合データ分析プラットフォームのDatabricks が提供するデータ仮想化サービスです。
https://www.databricks.com/blog/announcing-general-availability-lakehouse-federation
MySQL やPostgreSQL など、社内に存在する様々なデータソースへのアクセスをDatabricks 上で仮想化することで、データ資産を手軽に統合できるようになり、データの検出とアクセス管理が簡素化を実現する機能です。
現在サポートされているデータソースは主にDWH・RDB 系のサービスとなっています。
https://docs.databricks.com/en/query-federation/index.html
CData Connect Cloud は、以下のような特徴を持ったクラウド型のリアルタイムデータ連携製品です。
詳しくは、こちらの製品資料をご確認ください。
以下のステップを実行するには、CData Connect Cloud のアカウントが必要になります。こちらから製品の詳しい情報とアカウント作成、30日間無償トライアルのご利用を開始できますので、ぜひご利用ください。
前述の通りDatabricks Lakehouse Federation はRDB・DWH の統合、仮想化が可能ですが、現在のビジネス環境ではRDB・DWH 以外のSnowflake やSAP といったSaaS にデータが管理されているケースが多々あり、そのデータをDatabricks のようなデータ分析基盤で統合することはデータ活用において大きなポイントとなります。
もちろん外部のETL / ELT、EAI ツールなどを使って取り込むことも可能ですが、Databricks 以外のインタラクション・データ管理レイヤーが増えることが望ましくない場合もあると思います。
そこで、そのような課題をCData Connect Cloud とLakehouse Federation を組み合わせることで解決します。
CData Connect Cloud はSnowflake やSAP で提供されているデータアクセスのためのWeb API をSQL Server のインターフェース・TDSに擬態させ、様々なツール・サービスからのアクセスを可能にします。
この機能とDatabricks Lakehouse Federation がサポートするSQL Server 接続を組み合わせることで、あたかもDatabricks のデータカタログに存在するかのうようにSnowflake などのデータにシームレスなアクセスが可能になります。
CData Connect Cloud のアカウント取得後、サインインして連携したいSaaS への接続を構成していきましょう。
管理画面から「Connections」を選択し、「+Add Connection」をクリックします。
CData Connect Cloud がサポートしているデータソースの一覧が表示されるので、任意のデータソースを選択しましょう。
今回はSnowflake を選択します。
アカウント取得後、早速CData Connect Cloud にサインインして、連携したいSaaS への接続を構成していきましょう。
管理画面から「Connections」を選択し、「+Add Connection」をクリックします。
CData Connect Cloud がサポートしているデータソースの一覧が表示されるので、任意のデータソースを選択しましょう。
今回はSnowflake を選択します。
Snowflake を選択すると、以下のように接続管理画面が表示されます。
ここで必要な認証情報を入力して、コネクションを確立します。
Snowflake はデフォルトでOAuth による接続をサポートしているので、「Sign in」ボタンをクリックして、接続対象のアカウントにログインし、接続を許可しましょう。
実はこれだけでCData Connect Cloud の準備はほとんど完了です。
あとは、Databricks からCData Connect Cloud に接続するための認証情報となるAccess Token を取得するだけです。
「Settings」に移動し、「Access Tokens」から「+Create PAT(Personal Access Token)」をクリックします。
任意のAccess Token 名を入力し、「Create」をクリックしましょう。
以下のようにPersonal Access Token が表示されるので、コピーして保存します。
ちなみに、CData Connect Cloud では、Data Explorer という機能を使って、接続したサービスのデータを確認できます。
以下のようにSnowflake のデータが取得できていれば、正常に接続できていることが確認できます。このようにSnowflake を含む様々なサービスに対して、SQLベースでデータアクセスが可能になっています。
CData Connect Cloud の準備が完了したので、Databricks の画面からLakehouse Federation の機能設定を進めていきましょう。
Lakehouse Federation はCatalog に各サービスへのコネクションを追加することで、利用できるようになります。
「Catalog」に移動し「+」ボタンから「Add a connection」をクリックします。
Create Connection の画面に移動したら、任意のConnection name を入力し、Connection type から「SQL Server」を選択します。
CData Connect Cloud がSQL Server のインターフェースに擬態しているため、これで透過的に様々なサービスへの接続をサポートできます。
あとは、CData Connect Cloud への認証情報を入力していきます。
Property |
Value |
Note |
Auth type |
Username and password |
|
Host |
tds.cdata.com |
|
Port |
14333 |
通常のSQL Serverのポート「1433」と異なるので注意 |
User |
CData Connect Cloud のログインアカウントを指定します。 |
|
Password |
YOUR_PAT |
予め作成したPersonal Access Token を指定します。 |
あとはTest connection で接続が確認できればOKです。
Connection を作成後、Catalog に対象となるデータベースを追加していきます。
「Create catalog」をクリックし
任意のCatalog name を指定後、Database の項目に、CData Connect Cloud で作成したSnowflake のConnection Name を指定します。
Connection Name とは以下の項目のことです。
これでCatalog の作成が完了です。とてもシンプルに設定できますね。
それでは実際にDatabricks Lakehouse Federation とCData Connect Cloud を通じて、Snowflake のデータへアクセスしてみましょう。
Catalog の画面に移動すると、以下のようにSnowflake のCatalog が追加され、展開することでSnowflake のオブジェクト一覧が表示されることが確認できます。
あとは任意のテーブルを選択するだけで、項目の一覧、
そして、実際のデータがリアルタイムでローディングされて、アクセスすることができました!
もちろん、このままDashboard 機能でビジュアライズしたり、Workflow でELT のTransform 処理に繋げることも可能です。
このようにCData Connect Cloud では、Databricks Lakehouse Federation がサポートしていないSnowflake を含む170種類以上のSaaS へのデータアクセスを汎用的なインターフェースで統合し、手軽に連携を実現できます。
今回紹介したSnowflake 以外にも様々なクラウドサービス接続を提供しているので、是非皆さんが利用しているサービスにつないで活用してみてください。