データモデル
概要
connector は、Google Cloud 組織内で定義されたGoogle BigQuery データをモデル化します。指定されたプロジェクトおよびデータセットからデータを取得するようにさらに絞り込むことができます。接続後、connector はGoogle BigQuery の階層を模倣し、Google BigQuery の各プロジェクトを独自のカタログとしてモデル化します。カタログ内では、対応するプロジェクトのデータセットが個別のスキーマとしてモデル化されます。 データセット内のテーブルとビューは、それぞれのスキーマ内のテーブルとビューとしてモデル化されます。さらに、connector には静的な'CData' カタログが含まれており、静的な'Google BigQuery' スキーマが含まれ、Google BigQuery 階層外にある情報を格納しています。
カタログ
Google BigQuery の各プロジェクトはカタログとしてモデル化されます。例えば、Google Cloud に'test-project' と'cloud-data' というID を持つ2つのプロジェクトがある場合、connectorは2つのカタログを表示し、1つは'test-project'、もう1つは'cloud-data' という名前になります。カタログは、ProjectId 接続プロパティまたは完全修飾テーブル名のいずれかで指定できます。さらに、データモデルには単一の静的な'CData' カタログが含まれており、クライアントサイドビューのデータが格納されています。その使用方法については、次のセクションで詳しく説明します。
スキーマ
プロジェクト内の各データセットは、プロジェクトの対応するカタログ内のスキーマとしてモデル化されます。例えば、プロジェクト'test-project' に'DatasetTest' と'BusinessData' という2つのデータセットがある場合、'test-project' カタログには'DatasetTest' と'BusinessData' というスキーマが含まれます。スキーマは、DatasetId 接続プロパティまたは完全修飾テーブル名のいずれかで指定できます。'CData' カタログには、1つの静的な'Google BigQuery' スキーマが含まれています。このスキーマには、'PartitionsList' や'PartitionsValues' などのクライアントサイドビューが含まれています。これらのクライアントサイドビューは、カタログを'CData' に、スキーマを'Google BigQuery' に設定することでアクセスできます。次に例を示します。
SELECT * FROM [CData].[Google BigQuery].PartitionsList
テーブル
テーブルは、Google BigQuery から動的に取得されます。例えば、テーブル'Accounts' がプロジェクト'test-project' およびデータセット'BusinessData' にある場合は、次のようにクエリできます。SELECT * FROM [test-project].[BusinessData].Accounts
ProjectId およびDatasetId プロパティを設定することで、特定のプロジェクトおよびデータセットからデータを取得するように接続を構成できるため、これらをクエリに含める必要がありません。例えば、ProjectId が'test-project' に設定され、DatasetId が'BusinessData' に設定されている場合、クエリには以下に示すようにテーブル名のみを含める必要があります。
SELECT * FROM Accounts
ビュー
ビュー は変更ができないクライアントサイドのテーブルです。connector はこれらを使って、接続しているGoogle BigQuery のプロジェクトやデータセットに関するメタデータをレポートします。 connector には以下のビューが含まれています。
| テーブル | 説明 |
| Datasets | 指定されたプロジェクトのアクセス可能なデータセットをすべてリストします。 |
| PartitionsList | テーブルのパーティション定義をリストします。 |
| PartitionsValues | テーブルのパーティション範囲をリストします。 |
| Projects | 許可されたユーザーのプロジェクトをすべてリストします。 |
また、connector はGoogle BigQuery 内で定義されたサーバーサイドビューもサポートします。これらのビューは、テーブルと同じようにSELECT ステートメントで使用できます。しかし、ビュースキーマは容易に古くなる可能性があり、connector はそれらを更新する必要があります。詳しくは「RefreshViewSchemas」を参照してください。
ストアドプロシージャ
ストアドプロシージャ は、SQL クエリを介して呼び出されるアクションです。connector はこれらを使用してGoogle BigQuery のテーブルやジョブを管理し、OAuth の操作を行います。
connector が提供するクライアント側のストアドプロシージャに加え、Google BigQuery で定義されたサーバー側のストアドプロシージャもサポートされます。connector はプロシージャのパラメータ名を使用したCALL およびEXEC の両方をサポートしています。
Note:connector はIN パラメータおよび結果セットの戻り値のみをサポートします。
CALL `psychic-valve-137816`.Northwind.MostPopularProduct() CALL `psychic-valve-137816`.Northwind.GetStockedValue(24, 0.75) EXEC `psychic-valve-137816`.Northwind.MostPopularProduct EXEC `psychic-valve-137816`.Northwind.GetStockedValue productId = 24, discountRate = 0.75