Databricks と CData Connect で実現する Salesforce を含む 100 以上の PaaSサービスを含めたデータ仮想化プラットフォームの実装案

## 概要

CData Connect というサービスを検証していたところ、Databricks と CData Connect で実現できるデータ仮想化プラットフォームの方法論を思いついたため共有します。Databricks Lakehouse Federation では多くのデータベースのデータを仮想化できますが、 CData Connect を導入することで 100 以上の PaaS サービスもデータ仮想化できるようになります。本記事では、 Cdata Connect と Databricks Lakehouse Federation に関する基本情報を記述した上で、 Salesforce をソースとした検証手順を共有します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d651fc5c-3521-a264-25d9-4e1e3d421b97.png)

## CData Connect について

### CData Connect を提供する CData 社について

CDataは、データ統合ソリューションを提供する企業であり、主にデータ接続と統合に特化した製品を提供しています。私は過去にとある SaaS サービスからデータ連携をするコネクターを利用したことがあり、サポート対応がとても親切であった印象があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/38d0f8b7-b792-de10-bdd9-fc83c12ff468.png)

引用元：[CData Software Japan | リアルタイムデータ連携をCData で実現](https://www.cdata.com/jp/?utm_source=bing&utm_medium=cpc&utm_campaign=JP_Search_-_Branding&utm_content=CData&utm_term=e|cdata&msclkid=042e6e0fbc0e15bc87db08dafd2ea2a9)

アメリカのノースカロライナ州にグローバル本社を置くIT企業なのですが、日本法人は仙台にあるそうです。私の感想ではありますが、CData 日本法人の方は日本にある他の外資系 IT 企業の方々とは少し異なり、穏やかな印象があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/cd3bdbcb-eb88-4e52-668e-01580072bf46.png)

引用元：[CDataが仙台に本社を置く理由 | SENDAI INC. (sendai-inc.com)](https://sendai-inc.com/people/cdata/)

### CData Connect について

CData Connectは、CDataが提供するクラウドベースのデータ接続プラットフォームであり、異なるデータソース間でのデータ統合とリアルタイムデータの可視化を簡単に行えるように設計されています。このサービスは、クラウド、オンプレミス、SaaSアプリケーションなど、様々なデータソースに接続し、シームレスにデータを統合するためのソリューションです

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/f60cbd9e-88de-578e-825b-fd8b7fe4cb96.png)

引用元：[CData Connect | ユニバーサルなデータ接続プラットフォーム](https://www.cdata.com/jp/connect/)

サポートされているデータソースとしては下記のものがあり、 100 以上の PaaS サービスをサポートしているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/21eb861b-833e-5da7-076c-752aa671516b.png)

引用元：[CData Software Japan - CData Connect Connectors](https://www.cdata.com/jp/connect/server/connectors/)

## Databricks Lakehouse Federation の概要と課題について

### Databricks Lakehouse Federation とは

Databricks Lakehouse Federationは、Databricksが提供するデータ統合機能で、データソースに対してシームレスにクエリを実行し、統合的に分析するためのソリューションです。この機能は、データレイクハウスの利便性と、異なるデータソースへのアクセスと統合を組み合わせることにより、企業がデータの一元管理と分析をより効率的に行えるように設計されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/04245736-3454-3450-3ce9-a365d91eac43.png)

引用元：[Lakehouse Federationの一般提供を開始 | Databricks Blog](https://www.databricks.com/jp/blog/announcing-general-availability-lakehouse-federation)

### サポートされているデータソースがデータベースのみであることが現状の課題

2024年9月2日時点でサポートされているデータソースは下記です。データベースを中心にサポートされているなど、PaaS サービス上のデータ取得する方法が課題となっていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/0a819ed1-25a9-3d93-d47d-b94f2bbee284.png)

引用元：[レイクハウスフェデレーションとは何ですか？ | Databricks on AWS](https://docs.databricks.com/ja/query-federation/index.html#supported-data-sources)

## Databricks Lakehouse Federation の課題に対する Cdata のソリューション 

CData Connect の機能にて Databricks Lakehouse Federation のソースとできる機能に気づいたため、下記のアーキテクチャを検証することとしました。後述する通り、 Salesforce をソースとした場合には想定通りの動作をしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d651fc5c-3521-a264-25d9-4e1e3d421b97.png)

## Databricks Lakehouse Federation にて Cdata Connect 経由で Salseforce のデータを取得する手順

### 1. 環境準備

#### 1-1. CData Connect のトライアルの申し込み

下記リンク先から無償トライアルを申し込みます。

[CData Connect Cloud サインアップフォーム | CData Software Japan](https://www.cdata.com/jp/cloud/signup/)

引用元：[CData Connect Cloud サインアップフォーム | CData Software Japan](https://www.cdata.com/jp/cloud/signup/)

下記の記事が参考になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/995089d9-3d0c-1cbc-a34e-0120da8bdcee.png)

引用元：[CData Connect Cloud トライアル取得方法（2022/12現在） | CData Software Blog](https://www.cdata.com/jp/blog/connect-trialv2)

#### 1-2. Databricks の準備

Databricks の無償版もあるようですが、今回は手元にあった環境で検証しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/46289833-b0cb-18a3-2d84-65ae55b72333.png)

引用元：[Databricks 無料トライアル | Databricks](https://www.databricks.com/jp/try-databricks#account)

#### 1-3.Salesforce 環境の準備

Salesforce の無償環境を利用できる Trailhead にて、ハンズオン組織として、Playground を作成しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/16bf24af-e607-4b93-480f-118359ff28ce.png)

引用元：[Log in (salesforce.com)](https://tbid.digital.salesforce.com/oauth2/aus5v9466wdqLdY0O697/v1/authorize?response_type=code&response_mode=query&nonce=1f5fb427-5ac9-42b1-9ef5-d545bbc05dd5&client_id=0oa5v93ebgAGqkFSn697&redirect_uri=https%3A%2F%2Fiis.digital.salesforce.com%2Fservices%2Foauth2%2Fcallback&state=eyJyZWZlcnJlciI6Imh0dHBzOi8vdHJhaWxoZWFkLnNhbGVzZm9yY2UuY29tLyIsImNsaWVudElkIjoiM01WRzlnOXJic1RrS25BWFJVX2hPTHZIUllqN0hTMWNzTjBMbGhPU2VCUnY1TnAybXhQdXJjSWZmQTVWMHpuOC51SUR0Ym1YeVNXbXhxX1hkQTh3eCIsInJlZGlyZWN0VXJpIjoiaHR0cHM6Ly90cmFpbGhlYWQuc2FsZXNmb3JjZS5jb20vYXV0aC90Ymlkc2lnbnVwL2NhbGxiYWNrP3Byb21wdD1sb2dpbiZsb2NhbGU9amEiLCJzdGF0ZSI6ImE0MGEzOTMyMWEzNTJmOWEwNDEzZTFmOTJlM2E5ZjdlNTBlYjRkMDMwNTI4NjJhYiIsImNvcnJlbGF0aW9uSWQiOiIyMzg5MGQzZi1kM2FhLTQ0YzYtYmQ5Zi1jMTMyNDk3YzIwMDAiLCJzdGFydFRpbWUiOjE3MTkyMTQzODA0MzMsImlkcHMiOlsiSWRQIC0gR29vZ2xlIiwiSWRQIC0gU2FsZXNmb3JjZSIsIklkUCAtIE11bGVzb2Z0LVVTIiwiSWRQIC0gTXVsZXNvZnQtRVUiLCJJZFAgLSBUYWJsZWF1IiwiSWRQIC0gTGlua2VkaW4iLCJJZFAgLSBBcHBsZSIsIm90cCJdLCJsb2dnZWRJbiI6ZmFsc2V9&scope=openid+email+profile+address+phone+offline_access&intent=register)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/7e39c5a7-0120-be28-6fb8-45ea3c0f614f.png)

### 2. CData Connect にて Salesforce との接続を確立

#### 2-1. Cdata Connect の Connection タブにて`Salesforce_01`という名称の Salseforce の接続情報を作成

Salesforce の検証環境にログインしている状態で下記の Sign In をクリックすることで認証が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/838351e9-f895-daea-0e06-be544dc05bd8.png)

#### 2-2. Data Explorer タブにてデータを取得できることを確認

```sql
SELECT * FROM [Salesforce_01].[Salesforce].[Account]
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/9b78d206-9d83-454e-c77c-24a278467963.png)

### 3. Databricks Lakehouse Federation に CData Connect を登録

#### 3-1. CData Connectにて設定 -> Access Tokens にてトークンを作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/5a249c45-2cc2-1ef8-dec7-26c976e90f2e.png)

#### 3-2. Databricks の Catalog Explorer にて CData Connect に対する Connection を作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/134abeb5-601d-693b-b17f-4243dcf63430.png)

#### 3-3. 作成済みの Connection を用いた外部カタログを作成

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/86c49f98-1de2-f4a2-476e-26ddba567c4c.png)


#### 3-4. Databricks から データを取得できることを確認

```sql
%sql
select * from `manabian_cdata_salesforce`.`salesforce`.`account` limit 100;
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/72201169-519e-8195-f0c7-586632549096.png)

## まとめ

Databricks と CData Connect で実現できるデータ仮想化プラットフォームに関する基本的な情報を整理しました。本アイディアは有益なアーキテクチャであると考えているため、より深い検証をしていみたいと考えております。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/d651fc5c-3521-a264-25d9-4e1e3d421b97.png)