9.4. Google スプレッドシートトランスレーター
google-spreadsheet translator は、Google スプレッドシートへの接続に使用されます。
クエリー方法は、ワークシート内のデータに以下の特徴があることを想定します。
- データを含むすべての列はクエリーできます。
- セルが空の場合には、値が null として取得されます。ただし、null 文字列と空の文字列の値を区別すると、Google が相互に置き換え可能なものになるとは限りません。可能な場合は、null 文字列と空の文字列を区別できない場合は、トランスレーターが警告を提供したり、例外をスローする可能性があります。
- 最初の行が存在し、文字列の値が含まれる場合には、行は列ラベルを表すことが想定されます。
デフォルトのネイティブメタデータインポートを使用している場合、トランスレーターの起動時に Google アカウントのメタデータ(ワークシートおよびワークシートの列に関する情報)が読み込まれます。データ型に変更を加えた場合には、仮想データベースを再起動することが推奨されます。
トランスレーターは単一のシートに対してのみクエリーを送信できます。これは、スプレッドシートクエリー言語で利用可能な順序、集計、基本的な述語、およびほとんどの機能を提供します。
google-spreadsheet translator はインポーターの設定を提供しませんが、VDB のメタデータを提供することができます。
Data Virtualization に定義されているヘッダーのあるシートからすべてのデータ行を削除する場合は、Data Virtualization からシートにアクセスできなくなります。Google API はヘッダーをその時点でデータ行として扱い、そのクエリーは有効ではなくなります。
文字列以外のフィールドは、正規の Data Virtualization SQL 値を使用して更新されます。スプレッドシートで非補正ロケールが使用されている場合は、更新を許可しないことを検討してください。詳細は、「 TEIID-4854」 および「 allTypesUpdatable
import プロパティー」を参照してください。
インポーターのプロパティー
- allTypesUpdatable: すべての列を updatable とマークするには、true に設定します。文字列または TEIID-4854 の影響を受けません。デフォルトは true です。
ネイティブクエリー
Google スプレッドシートソース手順は、teiid_rel:native-query
エクステンションを使用して作成できます。詳細は「 Translators でパラメーター化 可能なネイティブクエリー 」を参照してください。この手順では、ネイティブプロシージャーコールと同様の native-query を呼び出します。また、ARRAYTABLE や同様の機能の使用を必要とするのではなく、クエリーが事前に決定され、結果列タイプが認識されているという利点があります。詳細は、以下の Select セクションを参照してください。
データソースに対してコマンドを実行できるセキュリティーリスクがあるため、この機能はデフォルトではオフになっています。この機能を有効にするには、SupportsDirectQueryProcedure プロパティーを true に設定します。詳細は「 Translators での 実行プロパティーの上書き 」を参照してください。
デフォルトでは、クエリーを直接実行する手順の名前は native と呼ばれます。名前を変更するには、実行プロパティー DirectQueryProcedureName を上書きします。詳細は「 Translators での 実行プロパティーの上書き 」を参照してください。
Google のスプレッドシートトランスレーターは、Data Virtualization の解析または解決を行わずに、アドホッククエリーをソースに対して直接実行する手順を提供します。この手順の実行結果のメタデータは Data Virtualization には認識されないため、オブジェクト配列として返されます。ARRAYTABLE を使用して、クライアントアプリケーションが使用するテーブル出力を作成できます。詳細は、「 ARRAYTABLE 」を参照してください。
Data Virtualization は、以下の例のように単純なクエリー構造でこの手順を公開します。
example の選択
SELECT x.* FROM (call google_source.native('worksheet=People;query=SELECT A, B, C')) w, ARRAYTABLE(w.tuple COLUMNS "id" string , "type" string, "name" String) AS x
SELECT x.* FROM (call google_source.native('worksheet=People;query=SELECT A, B, C')) w,
ARRAYTABLE(w.tuple COLUMNS "id" string , "type" string, "name" String) AS x
最初の引数は、以下のプロパティーのセミコロンで区切られた(;)名前と値のペアを取り、手順を実行します。
プロパティー | 説明 | 必須 |
---|---|---|
worksheet | Google スプレッドシート名。 | はい |
query | スプレッドシートのクエリー。 | はい |
limit | 取得する行数。 | いいえ |
offset | 制限または開始から取得する行のオフセット。 | いいえ |