メインコンテンツへスキップ

データモデル

データソースに SQL クエリを発行する際は、Catalog.Schema.Table のパターンに従います:
  • Catalog は、データソースを作成する際に割り当てる名前です。
  • 複数のスキーマをサポートするデータソースの場合、Schema は対象としたいスキーマの名前です。複数のスキーマをサポートしないデータソースの場合、SchemaGoogleSheets のようなデータソースの汎用名です。
  • Table はクエリしたいテーブルの名前です。
例えば、Salesforce は複数のスキーマをサポートしないデータソースです。Salesforce1 という名前の Salesforce へのコネクションがあり、Account テーブルからすべての結果を返すクエリを発行したい場合、クエリは SELECT * FROM Salesforce1.Salesforce.Account となります。

データ型

Connect AI は以下のデータ型をサポートしています:
  • BINARY
  • VARCHAR
  • TINYINT
  • SMALLINT
  • INTEGER
  • BIGINT
  • FLOAT
  • DOUBLE
  • DECIMAL
  • NUMERIC
  • BOOLEAN
  • DATE
  • TIME
  • TIMESTAMP
  • UUID

タイムスタンプのクエリ

タイムスタンプ値は、ISO 8601 形式で記述されタイムゾーン指定子を含む限り、任意のタイムゾーンで入力できます。Connect AI はタイムスタンプを自動的に UTC に変換します。連携ツールがこのデータにアクセスする際、Connect AI は UTC 形式でデータを提供します。

名前と引用符

  • テーブル名およびカラム名は識別子名とみなされます。そのため、以下の文字に制限されます:
    • A-Z
    • a-z
    • 0-9
    • _:@]
  • 上記に記載されていない文字を含むテーブル名やカラム名を使用するには、SQL ステートメント内で角括弧を使って引用符で囲む必要があります:[name]
  • パラメータ名は任意で @ 記号で始めることができ(例:@p1 または @CustomerName)、引用符で囲むことはできません。
  • 文字列はシングルクォートで囲む必要があります(例:'John Doe')。

フェデレーションクエリ

Connect AI は、複数の接続されたデータソースから一度にデータを返すフェデレーションクエリをサポートしています。この機能により、ソース間でデータを手動でコピーまたは移動することなく、データを便利に組み合わせることができます。

クエリ例

フェデレーションクエリを発行することがどのように有用かの例として、以下の状況を考えてみましょう:
  • Salesforce および Snowflake へのコネクションがあり、それぞれ Salesforce1 および Snowflake1 と呼ばれています。
  • Salesforce には、Salesforce アカウントに関する情報を含む Account テーブルがあります。
  • Snowflake はデータウェアハウスです。会社の Web サイトからのログイン履歴を含む LoginHistory テーブルがあります。
  • 各 Salesforce アカウントが最後に Web サイトにログインした時刻を表示したいとします。
これを実現するには、以下のようなフェデレーションクエリを発行できます:
SELECT [Salesforce1].[Salesforce].[Account].[Name], [Snowflake1].[Website].[LoginHistory].[LastLogin]
  FROM [Salesforce1].[Salesforce].[Account]
  JOIN [Snowflake1].[Website].[LoginHistory]
  ON [Salesforce1].[Salesforce].[Account].[Id] = [Snowflake1].[Website].[LoginHistory].[SFAccountId]
このコマンドは、Salesforce アカウントの名前と、Web サイトからの最後のログイン時刻の日付および時刻という 2 つのカラムを持つテーブルを返します。

制限事項

フェデレーションクエリには以下の制限があることに注意してください:
  • 大規模なフェデレーションクエリは、Connect AI が各ソースから個別にデータを受け取る必要があるため、単一ソースのクエリよりも実行に時間がかかる場合があります。
  • フェデレーションクエリは各データソースに対する個別のクエリとして動作します。データソースにクエリ制限がある場合、この動作に注意してください。
  • フェデレーションクエリは読み取り専用であるため、データを変更することはできません。したがって、UPSERT や DELETE などの SQL コマンドはサポートされていません。