データモデル
データソースに SQL クエリを発行する際は、Catalog.Schema.Table のパターンに従います:
Catalogは、データソースを作成する際に割り当てる名前です。- 複数のスキーマをサポートするデータソースの場合、
Schemaは対象としたいスキーマの名前です。複数のスキーマをサポートしないデータソースの場合、SchemaはGoogleSheetsのようなデータソースの汎用名です。 Tableはクエリしたいテーブルの名前です。
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-Za-z0-9_:@]
- 上記に記載されていない文字を含むテーブル名やカラム名を使用するには、SQL ステートメント内で角括弧を使って引用符で囲む必要があります:
[name] - パラメータ名は任意で @ 記号で始めることができ(例:
@p1または@CustomerName)、引用符で囲むことはできません。 - 文字列はシングルクォートで囲む必要があります(例:
'John Doe')。
フェデレーションクエリ
Connect AI は、複数の接続されたデータソースから一度にデータを返すフェデレーションクエリをサポートしています。この機能により、ソース間でデータを手動でコピーまたは移動することなく、データを便利に組み合わせることができます。クエリ例
フェデレーションクエリを発行することがどのように有用かの例として、以下の状況を考えてみましょう:- Salesforce および Snowflake へのコネクションがあり、それぞれ Salesforce1 および Snowflake1 と呼ばれています。
- Salesforce には、Salesforce アカウントに関する情報を含む
Accountテーブルがあります。 - Snowflake はデータウェアハウスです。会社の Web サイトからのログイン履歴を含む
LoginHistoryテーブルがあります。 - 各 Salesforce アカウントが最後に Web サイトにログインした時刻を表示したいとします。
制限事項
フェデレーションクエリには以下の制限があることに注意してください:
- 大規模なフェデレーションクエリは、Connect AI が各ソースから個別にデータを受け取る必要があるため、単一ソースのクエリよりも実行に時間がかかる場合があります。
- フェデレーションクエリは各データソースに対する個別のクエリとして動作します。データソースにクエリ制限がある場合、この動作に注意してください。
- フェデレーションクエリは読み取り専用であるため、データを変更することはできません。したがって、UPSERT や DELETE などの SQL コマンドはサポートされていません。