CData デベロッパーセンター

データ開発者のための簡素化された統合

開発者向けリソースを探す

.NET ライブデータを扱う C# & ASP.NET アプリを構築
Python ライブデータを扱う Python アプリ & スクリプトを構築
Java ライブデータを扱う Java アプリを構築
SQL Server SSIS、Linked Server、純粋な SQL でライブデータを操作
Model Context Protocol AI にあらゆるデータソースからの回答を依頼
コミュニティに参加 CData コミュニティに参加して、質問し、回答を得て、仲間と交流しましょう


データ開発のためのドライバとコネクタの使用

概要

標準ベースのドライバは、SQL を使用して Software-as-a-Service (SaaS) プラットフォームやその他の非データベースソースからデータを扱う簡単な方法を提供します。SQL ベースのコネクタを活用することで、従来のデータベースに使用するのと同じ SQL 構文で異種データソースをクエリできます。標準ベースのドライバをデータ統合タスクに使用する主なメリットをご覧ください。

データ開発者にとってのドライバのメリット

統一された SQL インターフェース

標準ベースのドライバを使用すれば、複数の言語固有の SDK を学習したり維持したりする必要はありません。代わりに、各データソースをリレーショナルデータベースのように扱い、使い慣れた SQL ステートメントでデータを送受信できます。SELECT、JOIN、GROUP BY、SUM、ORDER BY、WHERE などの一般的な操作により、プラットフォームごとにカスタムロジックを書くことなく、データの集約、フィルタリング、変換を迅速に行えます。

API のリレーショナルモデル構築

  • テーブルとビューは、リソースコレクション(Orders、Accounts、Users など)にほぼ対応
  • リソースの個々の要素は通常、行に対応し、フィールドは列にマッピング
  • サブコレクションは親コレクションと外部キー関係を持つことが可能(Orders と Order Line Items)
  • CRUD 操作は SQL ステートメントにほぼ変換:
    HTTP リクエスト 対応する SQL
    GET SELECT
    POST INSERT
    PUT, PATCH UPDATE
    DELETE DELETE
  • 簡単に表現できない操作やエンティティはストアドプロシージャで実装

検出可能なメタデータ

ほとんどの標準ベースのドライバは、メタデータテーブルへのクエリによるエンドポイントとリソースの検出をサポートしています。この機能により、データ構造とその関係がより簡単にアクセスできるようになり、API ドキュメントを検索する時間を削減できます。標準のシステムテーブルをクエリするだけで、データソースのメタデータを検出できます。

エンティティ、オブジェクト、エンドポイントの検出

データベースと同様に「sys_tables」列をクエリして、データソースで利用可能な「テーブル」と「ビュー」(エンドポイント、オブジェクト、エンティティを表す)を確認できます。

SELECT * FROM sys_tables;
CatalogName SchemaName TableName TableType Description IsUpdateable
CData Salesforce Account TABLE (null) true
CData Salesforce Opportunity TABLE (null) true
フィールド、ディメンション、メジャーの検出

「sys_tablecolumns」システムテーブルをクエリして、特定のオブジェクトのフィールド、ディメンション、メジャーの操作を開始するために必要なすべての情報(SQL 準拠のデータ型、フィールドサイズなど)を取得できます。

SELECT * FROM sys_tablecolumns WHERE TableName = 'Account';
CatalogName SchemaName TableName ColumnName DataType DataTypeName Length
CData Salesforce Account Id 12 VARCHAR 2000
CData Salesforce Account IsDeleted 16 BIT 1
CData Salesforce Account Name 12 VARCHAR 2000
CData Salesforce Account BillingStreet 12 VARCHAR 2000
CData Salesforce Account BillingCity 12 VARCHAR 2000
CData Salesforce Account BillingState 12 VARCHAR 2000
CData Salesforce Account BillingPostalCode 4 INT 4
CData Salesforce Account BillingCountry 12 VARCHAR 2000
CData Salesforce Account BillingLatitude 12 VARCHAR 2000
CData Salesforce Account BillingLongitude 12 VARCHAR 2000
CData Salesforce Account BillingGeocodeAccuracy 12 VARCHAR 2000
CData Salesforce Account Phone 12 VARCHAR 2000
CData Salesforce Account Fax 12 VARCHAR 2000
CData Salesforce Account CreatedDate 93 TIMESTAMP 8
CData Salesforce Account CreatedById 12 VARCHAR 2000
CData Salesforce Account LastModifiedDate 93 TIMESTAMP 8
CData Salesforce Account LastModifiedById 12 VARCHAR 2000

環境間で一貫した接続性

ドライバをインストールすれば、SaaS データをリレーショナルデータベースと同様に扱えます。確立されたデータベースのスキルとワークフローを再利用することで、統合プロジェクトを迅速化し、データエンジニアリングチーム内のコラボレーションを簡素化できます。

結合、更新、集約などをサポートする標準 SQL クエリを記述できます。CData ドライバは、ソースに欠けている機能を補完します。

INNER JOIN を使用した SELECT
SELECT Account.Id, Account.Name, Account.Fax, Opportunity.AccountId, Opportunity.CloseDate FROM Account INNER JOIN Opportunity ON Account.Id = Opportunity.AccountId
集約関数
SELECT Name, AVG(AnnualRevenue) FROM Account GROUP BY Name
CRUD 操作
UPDATE Account SET Name='John' WHERE Id = @myId

複雑さの軽減

CData がドライバとコネクタを開発・維持しているため、基盤となる API の変更からアプリケーションを保護します。これにより、新しい API バージョンごとにコードをリファクタリングする必要が減ります。さらに、SQL インターフェースを使用することで、多数の API を扱う際によく生じる学習曲線やコードの重複を最小限に抑えられます。

簡素化された認証

CData のドライバとコネクタは、複雑な認証スキームを管理します。認証を簡素化する方法については、OAuth 入門をご覧ください。

NoSQL データのモデリング

JSON ドキュメントなどの NoSQL ソースへの SQL アクセスには、データの読み書きをサポートするインテリジェントなモデリングが必要です。JSONElasticsearch などの NoSQL データ、および Google Analytics のような多次元データのリレーショナルモデルの構築方法については、ナレッジベース記事をご覧ください。

JSON

CData は、JSON や XML などの形式の階層型半構造化データを表形式モデルにレンダリングするために、さまざまなフラット化技術を使用します。ネストされたフィールドはドット「.」またはアンダースコア「_」表記で構造的なアイデンティティを維持し、配列オブジェクトはインデックスで識別されます。以下に、サンプル JSON ドキュメントと CData ドライバおよびコネクタによって作成された表形式モデルを示します。可能な場合は、行スキャンを使用してデータ型を判定します。

{ "_id" : ObjectId("5780046cd5a397806c3dab38"), "address" : { "building" : "1007", "coord" : [-73.856077, 40.848447], "street" : "Morris Park Ave", "zipcode" : "10462" }, "borough" : "Bronx", "cuisine" : "Bakery }

JSON データの表形式スキーマ

列名 データ型 サンプル値
_id VARCHAR 5780046cd5a397806c3dab38
address_building INT 1007
address_coord_0 FLOAT -73.856077
address_coord_1 FLOAT 40.848447
address_street VARCHAR Morris Park Ave
address_zipcode INT 10462
borough VARCHAR Bronx
cuisine VARCHAR Bakery

注: address_building と address_zipcode は、サンプルデータに基づいてスキャンされ、INT 型と判定されています。コレクションにより多くの値が存在する場合、現実的にはこれらの項目が数値以外になる可能性があるため、データ型は異なる可能性があります。

JSON モデリング技術とカスタマイズオプションの詳細については、ナレッジベース記事(NoSQL 統合のための最先端ドライバ)をご覧ください。

Elasticsearch などの他の NoSQL ソースや、Google Analytics のような多次元データのモデリング技術について説明した他の記事もあります。

キャッシュとパフォーマンス

多くのドライバは、インメモリまたは永続的なキャッシュを提供します。この機能は、頻繁に繰り返されるクエリの結果を保存することでパフォーマンスを向上させ、冗長な API 呼び出しを排除します。キャッシュレイヤーは、データに繰り返しアクセスする必要がある大規模な分析やレポートシナリオで大きなメリットとなります。

データの読み書きに関してパフォーマンスを向上させるドライバの主要な機能として、クエリのプッシュダウンとページング/バッチ操作サポートの 2 つがあります。

パフォーマンス: クエリのプッシュダウン

多くのサービス、SaaS アプリケーション、データストアは、SQL 風のインターフェースや、API またはプロトコル内でのフィルタ、集約とグループ化、結合などの詳細なサポートを通じて、複雑なクエリをサポートしています。CData ドライバは、可能な限り複雑な SQL 機能をデータソースにプッシュダウンします。例:

CData では、次のようなクエリを使用できます:

SELECT * FROM Employees WHERE ID = 'A1245'

このクエリは、OData サービスの場合、次の URL への GET リクエストに変換されます:

http://host/service/Employees(ID='A1245')

各ドライバはそのデータソースに特化して設計されているため、この機能は各 API、プロトコル、サービスに対して可能な限り深く実装されています。

パフォーマンス: ページングとバッチ操作

開発者は API が存在して以来、API 呼び出しを書いてきました。しかし、大きなデータセットを取得するには、複数の「ページ」のデータを収集、解析、再結合して完全なデータセットを作成する必要があります。CData ドライバは、データのページネーションを自動的に処理し、リクエスト元のアプリケーションまたはフレームワークに表示する前にメモリ内で結合します。これにより、シームレスなエクスペリエンスと、多くの場合より高速なデータ取得が実現します。

バッチまたはバルク操作は、サービスやアプリケーションが大きなデータセットを配信(または受信)するために使用するもう 1 つのメカニズムです。通常、このフローには複数の呼び出しが必要です。バッチの構築を開始するリクエスト、ジョブが完了するまでの状態を確認する複数の後続リクエスト、そしてコンパイルされたデータセットを取得する最終リクエストです。ほとんどのエンドポイントで、CData ドライバは複数のリクエストと複数のレスポンスの処理を必要とせず、SQL の単一の SELECT リクエストでこのフローを自動的に処理します。

使用例

Magento のような e コマース SaaS プラットフォームを考えてみましょう。地域別の上位支出顧客リストを生成したい場合、JOIN、GROUP BY、SUM を使用した SQL クエリを発行するだけで、1 ステップでデータを集約できます。標準ベースのドライバがなければ、各データエンドポイントに個別のロジックを記述する必要があり、開発時間とメンテナンスのオーバーヘッドが増加します。

次のステップ

標準ベースのドライバを使用することで、データ開発者は幅広いデータソースへの接続の複雑さを排除し、アプリケーションの構築と保守をより迅速かつ容易にできます。