CData Sync App は、Google BigQuery データをデータベース、データレイク、またはデータウェアハウスに継続的にパイプライン化する簡単な方法を提供し、分析、レポート、AI、および機械学習で簡単に利用できるようにします。
Google BigQuery コネクタはCData Sync アプリケーションから使用可能で、Google BigQuery からデータを取得して、サポートされている任意の同期先に移動できます。
Sync App は、Google アカウントまたはGoogle Apps ドメインのBigQuery テーブルへのSQL-92 読み/書きアクセスを可能にします。BigQuery の完全な集計構文および結合構文がサポートされています。さらに、BigQuery 構文のステートメントはパススルーできます。Sync App は、BigQuery Web services API のバージョン2.0 を使用しています。Google Developer Console にてプロジェクトを作成し、API を有効にする必要があります。プロジェクトを作成しこのAPI に認証する手順については、Google への接続 を参照してください。
必須プロパティについては、設定タブを参照してください。
通常必須ではない接続プロパティについては、高度な設定タブを参照してください。
Sync App は、認証にユーザーアカウントおよびGCP インスタンスアカウントの使用をサポートします。
以下のセクションでは、Google BigQuery の利用可能な認証スキームについて説明します。
AuthScheme は、すべてのユーザーアカウントフローでOAuth に設定する必要があります。
OAuth アクセストークンの取得
次の接続プロパティを設定し、OAuthAccessToken を取得します。
続いてストアドプロシージャを呼び出し、OAuth 交換を完了します。
アクセストークンとリフレッシュトークンを取得すると、データに接続し、OAuth アクセストークンを自動または手動でリフレッシュすることができるようになります。
OAuth アクセストークンの自動リフレッシュ
ドライバーがOAuth アクセストークンを自動的にリフレッシュするようにするには、最初のデータ接続で次のように設定します。
OAuth アクセストークンの手動リフレッシュ
データ接続時に手動でOAuth アクセストークンをリフレッシュするために必要な値は、OAuth リフレッシュトークンのみです。
GetOAuthAccessToken によって返されたExpiresIn パラメータ値が経過した後に、RefreshOAuthAccessToken ストアドプロシージャを使用し、手動でOAuthAccessToken をリフレッシュします。次の接続プロパティを設定します。
次に、RefreshOAuthAccessToken を呼び出し、OAuthRefreshToken にGetOAuthAccessToken によって返されたOAuth リフレッシュトークンを指定します。新しいトークンが取得できたら、OAuthAccessToken プロパティにRefreshOAuthAccessToken によって返された値を設定し、新しい接続をオープンします。
最後に、OAuth リフレッシュトークンを保存し、OAuth アクセストークンの有効期限が切れた後に手動でリフレッシュできるようにします。
オプション1:Verifier code を取得および交換
Verifier code を取得するには、OAuth Authorization URL で認証する必要があります。
インターネットブラウザに対応したマシンから認証してOAuthVerifier 接続プロパティを取得する方法は次のとおりです。
ヘッドレスマシンでは、次の接続プロパティを設定してOAuth 認証値を取得します。
OAuth 設定ファイルが生成されたら、以下のように接続プロパティをリセットする必要があります。
オプション2:OAuth 設定を転送
ヘッドレスマシンでの接続に先立ち、インターネットブラウザに対応したデバイスでドライバとの接続を作成し、インストールする必要があります。上述の「デスクトップアプリケーション」の説明に従って、接続プロパティを設定します。
「デスクトップアプリケーション」の手順が完了すると、生成された認証値は、OAuthSettingsLocation で指定された場所に暗号化されて書き込まれます。デフォルトのファイル名はOAuthSettings.txt です。
接続が正常にテストされたら、OAuth 設定ファイルをヘッドレスマシンにコピーします。
ヘッドレスマシンで、次の接続プロパティを設定し、データに接続します。
GCP 仮想マシン上で実行している場合は、Sync App は仮想マシンに関連付けられたサービスアカウントを使用して認証できます。 このモードを使用するには、AuthScheme をGCPInstanceAccount に設定します。
次のセクションでは、高度な統合で必要となるSync App 機能を設定する方法を説明します。
大きな結果セットは、テンポラリテーブルまたは永続テーブルに保存する必要があります。 次のプロパティを使用して、テーブルの永続性を制御できます。
必要に応じて、AllowLargeResultSets プロパティを有効にして、Sync App が自動的に宛先テーブルを作成するようにします。 クエリ結果が大きすぎてBigQuery クエリキャッシュに収まらない場合、Sync App はデータプロジェクト内に隠しデータセットを作成し、そのデータセット内の宛先テーブルを使用してクエリを再実行します。 データセットは、その中で作成されたすべてのテーブルが24時間で期限切れになるように設定されています。
状況によっては、Sync App で作成されたデータセットの名前を変更したい場合があります。 例えば、複数のユーザーがSync App を使用していて、他のユーザーによって作成されたデータセットへの書き込み権限を持っていない場合などです。 この方法の詳細は、TempTableDataset を参照してください。
接続内の任意のクエリの最大コストに対する制限をオーバーライドするには、MaximumBillingTier を設定します。
Google BigQuery では、行のバッチを操作するためのインターフェースがいくつか提供されています。 Sync App は、InsertMode オプションを経由してこれらのメソッドをサポートしており、それぞれが異なるユースケースに特化しています。
バルクINSERT に加えて、Sync App はバルクUPDATE およびバルクDELETE 操作の実行もサポートします。 そのためには、Sync App は設定するフィルタと行を含むデータをBigQuery の新しいテーブルにアップロードし、2つのテーブル間でMERGE を実行してテンポラリテーブルをドロップする必要があります。 InsertMode は、テンポラリテーブルに行を挿入する方法を決定しますが、Streaming モードとDML モードはサポートされていません。
ほとんどの場合、Sync App はバルクアップデートのSET 句とWHERE 句のどちらにどのカラムが必要かを判断できます。 「バルクUPDATE をサポートするには、主キーを定義してください」といったエラーが表示された場合は、PrimaryKeyIdentifiers を使用して、キーとして扱うカラムをSync App に指示できます。 更新では、キーカラムの値は一致する行を見つけるためにのみ使用され、キーカラムの値の更新はできません。
このセクションでは、Google BigQuery Sync App の高度な機能を厳選して説明します。
Sync App はユーザー定義ビューの使用をサポートします。これは事前設定されたユーザー定義クエリによって内容が決定される仮想テーブルです。 このビューは、ドライバーに発行されるクエリを直接制御できない場合に有効です。 カスタムビューの作成と設定の概要については、ユーザー定義ビュー を参照してください。
SSL の設定 を使用して、Sync App が証明書のネゴシエーションをどのように扱うかを調整します。さまざまな証明書形式を選択できます。詳しくは、「接続文字列オプション」にあるSSLServerCert プロパティを参照してください。
Windows プロキシとHTTP プロキシを含むファイアウォールとプロキシ に合致するようSync App を設定します。トンネル接続を設定することもできます。
詳しくは、クエリ処理 を参照してください。
デフォルトでは、Sync App はサーバーとのTLS のネゴシエーションを試みます。サーバー証明書は、デフォルトのシステム信頼済み証明書ストアで検証されます。SSLServerCert 接続プロパティを使用して、証明書の検証方法をオーバーライドできます。
別の証明書を指定するには、SSLServerCert 接続プロパティを参照してください。
HTTP プロキシへの認証には、以下のように設定します。
次のプロパティを設定します。
CData Sync App は、ProjectId とDatasetId が設定されているGoogle BigQuery 内で定義されたデータをモデル化します。
ビュー は変更ができないクライアントサイドのテーブルです。Sync App はこれらを使って、接続しているGoogle BigQuery のプロジェクトやデータセットに関するメタデータをレポートします。
さらに、Sync App はGoogle BigQuery 内で定義されたサーバーサイドのビューもサポートしています。 これらのビューは、テーブルと同じ方法でSELECT ステートメントで使用できます。 しかしながら、ビュースキーマは容易に古くなってしまうためSync App でリフレッシュが必要です。 詳しくは、RefreshViewSchemas を参照してください。
Google BigQuery はAmazon S3リージョン(aws-us-east-1など)やAzure Storage リージョン(azure-useast2など)にデータを保存する外部データセットを作成できます。 Sync App はこれらのデータセットをサポートしますが、2つの大きな制約があります。
ストアドプロシージャ は、データソースのファンクションライクなインターフェースです。Sync App はこれらを使用してGoogle BigQuery のテーブルやジョブを管理し、OAuth の操作を行います。
Sync App が提供するクライアント側のストアドプロシージャに加え、Google BigQuery で定義されたサーバー側のストアドプロシージャもサポートされます。
Sync App はプロシージャのパラメータ名を使用したCALL およびEXEC の両方をサポートしています。
Sync App は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.GetSockedValue productId = 24, discountRate = 0.75
Google BigQuery はテーブルの設定記述をサポートしますが、Sync App はデフォルトではこれらをレポートしません。 ShowTableDescriptions は、テーブルの説明をレポートするために使用できます。
Google BigQuery は主キーを元々サポートしていませんが、Sync App は主キーを定義できるため、データを修正するために主キーを必要とする環境でも使用できます。 主キーは、PrimaryKeyIdentifiers オプションで定義できます。
データカタログサービスのポリシータグがテーブルで定義されている場合、PolicyTags カラムを使用してシステムテーブルから取得できます。
SELECT ColumnName, PolicyTags FROM sys_tablecolumns WHERE CatalogName = 'psychic-valve-137816' AND SchemaName = 'Northwind' AND TableName = 'Customers
テーブル定義は、接続文字列オプションにて指定されたGoogle Bigquery のProject やDataset を元に動的に生成されます。
ビューは、データを示すという点でテーブルに似ていますが、ビューは読み取り専用です。
クエリは、ビューに対して通常のテーブルと同様に実行することができます。
| Name | Description |
| Datasets | 指定されたプロジェクトのアクセス可能なデータセットをすべてリストします。 |
| PartitionsList | テーブルのパーティション定義をリストします。 |
| PartitionsValues | テーブルのパーティション範囲をリストします。 |
| Projects | 許可されたユーザーのプロジェクトをすべてリストします。 |
指定されたプロジェクトのアクセス可能なデータセットをすべてリストします。
| Name | Type | Description |
| Id [KEY] | String | データセットの一意の完全修飾不透過ID。 |
| Kind | String | リソースタイプ。 |
| FriendlyName | String | データセットのわかりやすい名前。 |
| DatasetReference_ProjectId | String | コンテナプロジェクトへの一意の参照。 |
| DatasetReference_DatasetId | String | プロジェクト名を使用しない、データセットへの一意の参照。 |
テーブルのパーティション定義をリストします。
| Name | Type | Description |
| Id [KEY] | String | パーティションの一意の識別子。 |
| ProjectId | String | テーブルが属するプロジェクト。 |
| DatasetId | String | テーブルが属するデータセット。 |
| TableName | String | テーブル名。 |
| ColumnName | String | パーティションに使用する列の名前。 |
| ColumnType | String | パーティション列のタイプ。 |
| Kind | String | テーブルが使用するパーティションのタイプ。DATE、RANGE、INGESTION のいずれか。 |
| RequireFilter | Boolean | テーブルをクエリするためにパーティション列のフィルタが必要かどうか。 |
テーブルのパーティション範囲をリストします。
| Name | Type | Description |
| Id | String | パーティションの一意の識別子。 |
| RangeLow | String | パーティション列の最小値。Kind がRANGE の場合は整数、それ以外の場合は日付。 |
| RangeHigh | String | パーティション列の最大値。Kind がRANGE の場合は整数、それ以外の場合は日付。 |
| RangeInterval | String | 各パーティションに含まれる値の範囲。Kind がRANGE の場合のみ有効。 |
| DateResolution | String | TIME またはINGESTION パーティション列に対して、date がどれだけ重要であるか。DAY、HOUR、MONTH、YEAR のいずれか。 |
許可されたユーザーのプロジェクトをすべてリストします。
| Name | Type | Description |
| Id [KEY] | String | プロジェクトの一意の識別子。 |
| Kind | String | リソースタイプ。 |
| FriendlyName | String | プロジェクトのわかりやすい名前。 |
| NumericId | String | プロジェクトの数値ID。 |
| ProjectReference_ProjectId | String | プロジェクトへの一意の参照。 |
Sync App は、データソースの型を、スキーマで使用可能な対応するデータ型にマッピングします。以下のテーブルはこれらのマッピングを説明します。
| Google BigQuery | CData スキーマ | |
| STRING | string | |
| BYTES | binary | |
| INTEGER | long | |
| FLOAT | double | |
| NUMERIC | decimal | |
| BIGNUMERIC | decimal | |
| BOOLEAN | bool | |
| DATE | date | |
| TIME | time | |
| DATETIME | datetime | |
| TIMESTAMP | datetime | |
| STRUCT | 下記参照 | |
| ARRAY | 下記参照 | |
| GEOGRAPHY | string | |
| JSON | string | |
| INTERVAL | string |
NUMERIC 型は38桁の精度をサポートし、BIGDECIMAL 型は76桁の精度をサポートすることに注意してください。 ほとんどのプラットフォームには、これらの値の精度を完全にサポートするdecimal 型がありません(.NET のdecimal は28桁をサポートし、Java のBigDecimal はデフォルトで38桁をサポートしています)。 この場合、クエリ時にこれらのカラムを文字列にキャストするか、IgnoreTypes=decimal を設定することでこれらを無視するように接続を構成することができます。
Google BigQuery では、単一の行に複合値を格納するために、STRUCT およびARRAY の2種類の型をサポートしています。 Google BigQuery の一部では、これらはRECORD やREPEATED 型としても知られています。
STRUCT は固定サイズの値を持つグループで、名前でアクセスされ、異なる型を持つことができます。
Sync App は構造体をフラット化し、個々のフィールドにドット付きの名前でアクセスできるようにします。
これらのドット付きの名前は引用符で囲む必要があることに注意してください。
-- trade_value STRUCT<currency STRING, value FLOAT> SELECT CONCAT([trade_value.value], ' ', NULLIF([trade_value.currency], 'USD')) FROM trades
ARRAY は同じ型を持つ値のグループであり、任意のサイズを持つことができます。 Sync App は配列を単一の複合値として扱い、JSON 集計としてレポートします。
STRUCT 型がARRAY フィールドを含むように、またはARRAY フィールドがSTRUCT 値のリストになるように、これらの型を組み合わせることができます。
フィールドの処理方法は、外側の型が優先されます。
/* Table contains fields:
stocks STRUCT<symbol STRING, prices ARRAY<FLOAT>>
offers: ARRAY<STRUCT<currency STRING, value FLOAT>>
*/
SELECT [stocks.symbol], /* ARRAY field can be read from STRUCT, but is converted to JSON */
[stocks.prices],
[offers] /* STRUCT fields in an ARRAY cannot be accessed */
FROM market
Sync App はINTERVAL 型を文字列で表します。クエリがINTERVAL 型を必要とする場合は常に、BigQuery SQL INTERVAL 形式を使用してINTERVAL を指定する必要があります。
YEAR-MONTH DAY HOUR:MINUTE:SECOND.FRACTIONINTERVAL 値を返すすべてのクエリは、ARRAY 集計に表示されない限りこの形式を使用し、その形式はSync App がどのようにデータを読み取るかに依存します。
例えば、「5年11ヶ月から10日と3時間2.5秒を引いた値」を正しい形式で表すと次のようになります。
5-11 -10 -3:0:0.2.5
Sync App は、以下のデータ型のパラメータを公開します。 いずれの場合も型パラメータはオプションであり、Google BigQuery にはパラメータ化されていないデータ型のデフォルト値があります。
これらのパラメータは、主にテーブルに書き込まれるデータを制限するためのものです。 これらは、STRING とBYTES ではカラムサイズとして、 NUMERIC とBIGNUMERIC では数値の精度とスケールとしてテーブルのメタデータに含まれます。
型パラメータはクエリには影響せず、クエリメタデータにはレポートされません。
例えば、以下の例では、入力がa STRING(100) およびb STRING(100) であっても、CONCAT の出力はただのSTRING です。
SELECT CONCAT(a, b) FROM table_with_length_params
| プロパティ | 説明 |
| AuthScheme | Google BigQuery に接続する際に使用する認証の種類。 |
| ProjectId | 非修飾テーブルを解決し、ジョブを実行するために使用するProjectId。 |
| DatasetId | The DatasetId used to resolve unqualified tables. |
| プロパティ | 説明 |
| AllowLargeResultSets | 大きなデータセットの場合に、大きなデータセットをテンポラリーテーブルに格納するかしないか。 |
| UseQueryCache | Google BigQuery のビルトインクエリキャッシュを使用するかどうかを指定します。 |
| PageSize | Google BigQuery から返されるページあたりの結果数。 |
| PollingInterval | ジョブが完了したかどうかを確認するためのチェックの間隔を秒単位で決定します。 |
| AllowUpdatesWithoutKey | 主キーなしで更新を許可するかどうか。 |
| FilterColumns | このプロパティを使用する前に、`AllowUpdatesWithoutKey` をtrue に設定してください。 |
| UseLegacySQL | このクエリにBigQuery のレガシーSQL を使用するかどうかを指定します。デフォルトでは、Standard SQL が使われます。 |
| プロパティ | 説明 |
| UseStorageAPI | バルクデータ読み出しにBigQuery のStorage API を使用するかどうかを指定します。 |
| UseArrowFormat | BigQuery のStorage API でArrow 形式を使用するかどうかを指定します。 |
| StorageThreshold | Storage API を呼び出すためにクエリが返す必要がある最小行数。 |
| StoragePageSize | Storage API クエリに使用するページサイズを指定します。 |
| プロパティ | 説明 |
| InsertMode | データを挿入する際に使用する方法を指定します。デフォルトでは、ストリーミングINSERT が使用されます。 |
| WaitForBatchResults | バルクアップロードAPI を使用するときにジョブの完了を待つかどうか。 InsertMode がUpload に設定されている場合のみ有効です。 |
| GCSBucket | Specifies the name of a GCS bucket to upload bulk data for staging. |
| GCSBucketFolder | Specifies the name of the folder in GCSBucket to upload bulk data for staging. |
| TempTableDataset | The prefix of the dataset that will contain temporary tables when performing bulk UPDATE or DELETE operations. |
| プロパティ | 説明 |
| OAuthClientId | カスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。 |
| OAuthClientSecret | カスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。 |
| DelegatedServiceAccounts | 委任されたリクエストのためのサービスアカウントE メールのスペース区切りのリスト。 |
| RequestingServiceAccount | 委任されたリクエストを行うためのサービスアカウントのE メール。 |
| プロパティ | 説明 |
| OAuthJWTCert | JWT 証明書のストア。 |
| OAuthJWTCertType | JWT 証明書を格納するキーストアの種類。 |
| OAuthJWTCertPassword | OAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。 |
| OAuthJWTCertSubject | OAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。 |
| OAuthJWTIssuer | Java Web Token の発行者。 |
| OAuthJWTSubject | アプリケーションからデリゲートアクセスの要求対象となるユーザーサブジェクト。 |
| プロパティ | 説明 |
| SSLServerCert | TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。 |
| プロパティ | 説明 |
| FirewallType | provider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。 |
| FirewallServer | ファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。 |
| FirewallPort | プロキシベースのファイアウォールで使用するTCP ポートを指定します。 |
| FirewallUser | プロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。 |
| FirewallPassword | プロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。 |
| プロパティ | 説明 |
| ProxyAutoDetect | provider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。 |
| ProxyServer | HTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレス。 |
| ProxyPort | クライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバー(ProxyServer 接続プロパティで設定)のTCP ポート。 |
| ProxyAuthScheme | ProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。 |
| ProxyUser | ProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名。 |
| ProxyPassword | ProxyUser 接続プロパティで指定されたユーザーに紐付けられたパスワード。 |
| ProxySSLType | ProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプ。 |
| ProxyExceptions | ProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。 |
| プロパティ | 説明 |
| LogModules | ログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。 |
| プロパティ | 説明 |
| Location | テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。 |
| BrowsableSchemas | レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
| Tables | レポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。 |
| Views | レポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。 |
| RefreshViewSchemas | provider が自動的に最新のビュースキーマを決定することを許可します。 |
| ShowTableDescriptions | プラットフォームのメタデータAPI とsys_tables / sys_views を介してテーブルの説明を返すかどうかを制御します。 |
| PrimaryKeyIdentifiers | Set this property to define primary keys. |
| AllowedTableTypes | Specifies what kinds of tables will be visible. |
| FlattenObjects | Determines whether the provider flattens STRUCT fields into top-level columns. |
| プロパティ | 説明 |
| StorageTimeout | How long a Storage API connection may remain active before the provider reconnects. |
| EmptyArraysAsNull | Whether empty arrays are represented as 'null' or as '[]' |
| HidePartitionColumns | Whether partition tables will show the columns _PARTITIONDATE and _PARTITIONTIME. |
| AllowAggregateParameters | QueryPassthrough が有効になっているときに、パラメータで生の集計を使用できるようにします。 |
| ApplicationName | An application name in the form application/version. For example, AcmeReporting/1.0. |
| AuditLimit | 監査テーブル内に保存される行の最大数。 |
| AuditMode | 監査テーブルに記録するprovider アクション。 |
| AWSWorkloadIdentityConfig | AWS 経由でWorkload Identity Federation を使用する場合に指定する設定プロパティ。 |
| BigQueryOptions | BigQuery オプションのカンマ区切りのリスト。 |
| GenerateSchemaFiles | スキーマを生成して保存するユーザーの好みのタイミングを示します。 |
| MaximumBillingTier | MaximumBillingTier はTB あたりの基本料金の乗数となる正の整数です。例えばMaximumBillingTier を2 に設定すると、そのクエリの最大費用はTB あたり2x 基本価格になります。 |
| MaximumBytesBilled | BigQuery がジョブがキャンセルされる前に消費を許容するバイト数を制限します。 |
| MaxRows | 集計やGROUP BY を使用しないクエリで返される最大行数を指定します。 |
| Other | 特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。 |
| PseudoColumns | テーブルカラムとして公開する擬似カラムを指定します。'TableName=ColumnName;TableName=ColumnName' という形式を使用します。デフォルトは空の文字列で、このプロパティを無効にします。 |
| QueryPassthrough | このオプションは、クエリをGoogle BigQuery サーバーにas-is で渡します。 |
| SupportCaseSensitiveTables | デフォルトでは、provider はテーブル名を大文字小文字を区別しないものとして扱います。そのため、複数のテーブルが同じ名前で大文字小文字だけが異なる場合、メタデータには1つだけがレポートされます。 |
| TableSamplePercent | This determines what percent of a table is sampled with the TABLESAMPLE operator. |
| Timeout | タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。 |
| UserDefinedViews | カスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。 |
| WorkloadPoolId | Workload Identity Federation プールのID。 |
| WorkloadProjectId | Workload Identity Federation プールをホストするGoogle Cloud プロジェクトのID。 |
| WorkloadProviderId | Workload Identity Federation プールプロバイダーのID。 |
このセクションでは、本プロバイダーの接続文字列で設定可能なAuthentication プロパティの全リストを提供します。
| プロパティ | 説明 |
| AuthScheme | Google BigQuery に接続する際に使用する認証の種類。 |
| ProjectId | 非修飾テーブルを解決し、ジョブを実行するために使用するProjectId。 |
| DatasetId | The DatasetId used to resolve unqualified tables. |
Google BigQuery に接続する際に使用する認証の種類。
非修飾テーブルを解決し、ジョブを実行するために使用するProjectId。
This property and BillingProjectId are used to determine billing for jobs and resolve unqualified table names.
The Sync App must create a job within Google BigQuery to execute certain kinds of queries. For example, complex SELECT statements, UPDATE and DELETE statements, and INSERT statements (when InsertMode is DML) are all executed using jobs. The project where a job executes determines how the job is billed.
The Sync App determines the billing project using these rules. Note that only the first two rules apply when QueryPassthrough is enabled. Either this property or BillingProjectId must be set to execute passthrough queries.
SELECT FirstName, LastName FROM `psychic-valve-137816`.`Northwind`.`customers`
In addition to setting the billing project, the Sync App also uses this property to determine the default data project.
The data project is used to resolve tables included in queries when they are not fully qualified:
/* Unqualified, resolved against connection properties */ SELECT FirstName, LastName FROM `Northwind`.`customers` /* Qualified, project specified as catalog */ SELECT FirstName, LastName FROM `psychic-valve-137816`.`Northwind`.`customers`
Any unqualified table references in the query are resolved using the following rules. Note that only methods 1 and 2 are supported when QueryPassthrough is enabled. This means that any tables outside the default data project must be explicitly qualified.
SELECT ... FROM `psychic-valve-137816`.`Northwind`.`customers` INNER JOIN `Northwind`.`orders` ON ...
The DatasetId used to resolve unqualified tables.
When a query refers to a table it can leave the dataset implicit, or qualify
the dataset directly as the schema portion of the table:
/* Implicit, resolved against connection string */ SELECT FirstName, LastName FROM `customers` /* Explicit, dataset specified as schema */ SELECT FirstName, LastName FROM `psychic-valve-137816`.`Northwind`.`customers`
Any unqualified table references in the query are resolved using the following rules. Note that only method 1 is supported when QueryPassthrough is enabled. This means that passthrough queries must set this property or qualify all tables.
SELECT ... FROM `psychic-valve-137816`.`Northwind`.`customers` INNER JOIN `orders` ON ...
このセクションでは、本プロバイダーの接続文字列で設定可能なBigQuery プロパティの全リストを提供します。
| プロパティ | 説明 |
| AllowLargeResultSets | 大きなデータセットの場合に、大きなデータセットをテンポラリーテーブルに格納するかしないか。 |
| UseQueryCache | Google BigQuery のビルトインクエリキャッシュを使用するかどうかを指定します。 |
| PageSize | Google BigQuery から返されるページあたりの結果数。 |
| PollingInterval | ジョブが完了したかどうかを確認するためのチェックの間隔を秒単位で決定します。 |
| AllowUpdatesWithoutKey | 主キーなしで更新を許可するかどうか。 |
| FilterColumns | このプロパティを使用する前に、`AllowUpdatesWithoutKey` をtrue に設定してください。 |
| UseLegacySQL | このクエリにBigQuery のレガシーSQL を使用するかどうかを指定します。デフォルトでは、Standard SQL が使われます。 |
大きなデータセットの場合に、大きなデータセットをテンポラリーテーブルに格納するかしないか。
大きなデータセットの場合に、大きなデータセットをテンポラリーテーブルに格納するかしないか。
Google BigQuery のビルトインクエリキャッシュを使用するかどうかを指定します。
Google BigQuery は最近のクエリの結果をキャッシュし、デフォルトでこのキャッシュをクエリに使用します。Google BigQuery はテーブルが更新されると自動的にキャッシュを更新するので、クエリが古いデータを返すリスクがなくパフォーマンスは一般的に良くなります。
これがfalse に設定されている場合、クエリは常にテーブルに対して直接実行されます。
Google BigQuery から返されるページあたりの結果数。
PageSize は、Google BigQuery から返されるページあたりの結果数をコントロールできます。 より大きなページサイズを設定することにより、一度のHTTP リクエストで返せるデータの量を増やすことができます。ただし、実行にはより長い時間がかかります。 より小さなページサイズを設定することにより、すべてのデータを取得するのに必要なHTTP リクエスト数が増加します。ただし、タイムアウト切断が起こらないようにすることを推奨します。
UseStorageApi が有効になっていて、実行中のクエリをStorage API で実行できる場合、このオプションは効果がないことに注意してください。 詳しくは、StoragePageSize を参照してください。
ジョブが完了したかどうかを確認するためのチェックの間隔を秒単位で決定します。
これはSync App に直接ストリーミングされるのではなく、テーブルに保存されるクエリにのみ適用されます。 これは3つの場合にのみ適用されます:
このプロパティは、クエリ結果が準備できているかを確認する間隔をどの長さにするかを決定します。 非常に大きなクエリ結果や複雑なクエリは処理に時間がかかります。ポーリング間隔が短い場合には、クエリ状況を確認する不要な要求が送られる結果を引き起こします。
主キーなしで更新を許可するかどうか。
主キーなしで更新を許可するかどうか。
このプロパティを使用する前に、`AllowUpdatesWithoutKey` をtrue に設定してください。
このプロパティを使用する前に、`AllowUpdatesWithoutKey` をtrue に設定することを忘れないでください。
プロパティを次のように設定します。
`filterColumns=col1[,col2[,col3]];`
このクエリにBigQuery のレガシーSQL を使用するかどうかを指定します。デフォルトでは、Standard SQL が使われます。
True に設定すると、クエリはBigQuery のレガシーSQL ダイアレクトを使用してクエリをリビルドします。
False に設定した場合は、クエリはBigQuery の標準SQL を使用します:https://cloud.google.com/bigquery/sql-reference/
UseLegacySQL がfalse に設定された場合は、AllowLargeResultSets の値は無視されます。クエリはAllowLargeResultSets がtrue の場合と同じように実行されます。
このセクションでは、本プロバイダーの接続文字列で設定可能なStorage API プロパティの全リストを提供します。
| プロパティ | 説明 |
| UseStorageAPI | バルクデータ読み出しにBigQuery のStorage API を使用するかどうかを指定します。 |
| UseArrowFormat | BigQuery のStorage API でArrow 形式を使用するかどうかを指定します。 |
| StorageThreshold | Storage API を呼び出すためにクエリが返す必要がある最小行数。 |
| StoragePageSize | Storage API クエリに使用するページサイズを指定します。 |
バルクデータ読み出しにBigQuery のStorage API を使用するかどうかを指定します。
デフォルトで、Sync App はデフォルトのREST API の代わりにStorage API を使用します。 クエリの複雑さに応じて、Sync App は次の2つの方法のいずれかでクエリを実行します:
BigQuery Storage API は、REST API(このオプションをfalse に設定することでアクセス可能)よりも速く効率的にデータを読み出すことができますが、価格が異なり、独自のOAuth アプリを使用する際は追加のOAuth 権限が必要になります。 また、PageSize の代わりに別個のStoragePageSize プロパティを使用します。
BigQuery REST API は追加の権限を必要とせず、標準価格を使用しますが、Storage API よりも低速です。
BigQuery のStorage API でArrow 形式を使用するかどうかを指定します。
このプロパティは、UseStorageApi が有効になっている場合にのみ効果があります。Storage API に対して読み取りを実行する場合、Sync App はさまざまな形式のデータをリクエストできます。 デフォルトではAvro を使用しますが、このオプションを有効にするとArrow が使用されます。
このオプションは、時系列データや、その他の多くのdate、time、datetime、timestamp フィールドを持つデータセットを扱う場合に有効にする必要があります。 Arrow を使用するこれらのデータセットでは、Avro を使用するものよりも顕著な改善が見られます。 それ以外の場合、Avro とArrow の読み取り時間は非常に近く、両者を切り替えても大きな違いはありません。
Storage API を呼び出すためにクエリが返す必要がある最小行数。
Sync App は、Storage API で直接実行するには複雑すぎるクエリを受け取ると、クエリジョブを作成し、Storage API を使用してクエリ結果テーブルから読み取ります。 クエリジョブが、このオプションで設定された行数よりも少ない値を返した場合、結果は直接返されStorage API は使用されません。
この値は1 から100000 の間に設定する必要があります。大きい値では、結果セットが大きい場合にのみStorage API を使用しますが、クエリジョブからより多くの結果を読み取ることで遅延が発生します。 値が小さいほど遅延は小さくなりますが、より多くのクエリにStorage API を使用します。
このオプションは、UseStorageApi が有効になっていて、実行中のクエリをStorage API で直接実行できない場合にのみ効果があることに注意してください。 Storage で直接実行されるクエリは、クエリジョブを作成しません。
Storage API クエリに使用するページサイズを指定します。
UseStorageApi が有効で、実行中のクエリがStorage API で実行可能な場合、このオプションはSync App がクライアントでバッファできる行数を制御します。
一般的に、値を大きくすると、メモリを消費しますがクエリが高速になります。値を小さくすると、メモリは節約されますがクエリは遅くなります。
このセクションでは、本プロバイダーの接続文字列で設定可能なUploading プロパティの全リストを提供します。
| プロパティ | 説明 |
| InsertMode | データを挿入する際に使用する方法を指定します。デフォルトでは、ストリーミングINSERT が使用されます。 |
| WaitForBatchResults | バルクアップロードAPI を使用するときにジョブの完了を待つかどうか。 InsertMode がUpload に設定されている場合のみ有効です。 |
| GCSBucket | Specifies the name of a GCS bucket to upload bulk data for staging. |
| GCSBucketFolder | Specifies the name of the folder in GCSBucket to upload bulk data for staging. |
| TempTableDataset | The prefix of the dataset that will contain temporary tables when performing bulk UPDATE or DELETE operations. |
データを挿入する際に使用する方法を指定します。デフォルトでは、ストリーミングINSERT が使用されます。
This section provides only a summary of the mechanisms that each of these modes use. Please see 高度な統合 for more details on how to use each of these modes.
UseLegacySQL がtrue の場合、Streaming とUploadモードのみ使用可能です。レガシーSQL ダイアレクトはDML ステートメントをサポートしていません。
バルクアップロードAPI を使用するときにジョブの完了を待つかどうか。 InsertMode がUpload に設定されている場合のみ有効です。
このプロパティは、Sync App がバッチジョブによるステータス報告を待つかどうかを決定します。 By default property is true and INSERT queries will complete only once Google BigQuery has finished executed them. When this property is false the INSERT query will complete as soon as a job is submitted for it.
The default mode is recommended for reliability:
You can disable this option to achieve lower delays when inserting, but you must also make sure to obey the Google BigQuery rate limits and check the status of each job to track their status and determine whether they have succeeded or failed.
Specifies the name of a GCS bucket to upload bulk data for staging.
Only applies when InsertMode is set to GCSStaging, and if that option is set to use staging then this option is required.
Specifies the name of the folder in GCSBucket to upload bulk data for staging.
Only applies when InsertMode is set to GCSStaging. If not set the Sync App defaults to writing to the root of the bucket.
The prefix of the dataset that will contain temporary tables when performing bulk UPDATE or DELETE operations.
Internally bulk UPDATE and DELETE use Google BigQuery MERGE queries, which require creating a table to hold all the update operations. This option is used along with the target table's region to determine the name of the dataset where these temporary tables are created. Each region must have its own temporary dataset so that the temporary table and the MERGE table can be stored in the same project/dataset. This avoids unnecessary data transfer charges.
For example, the Sync App would create a dataset called "_CDataTempTableDataset_US" for tables in the US region and a dataset called "_CDataTempTableDataset_asia_southeast_1" for tables in the Singapore region.
このセクションでは、本プロバイダーの接続文字列で設定可能なOAuth プロパティの全リストを提供します。
| プロパティ | 説明 |
| OAuthClientId | カスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。 |
| OAuthClientSecret | カスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。 |
| DelegatedServiceAccounts | 委任されたリクエストのためのサービスアカウントE メールのスペース区切りのリスト。 |
| RequestingServiceAccount | 委任されたリクエストを行うためのサービスアカウントのE メール。 |
カスタムOAuth アプリケーションの作成時に割り当てられたクライアントId を指定します。(コンシューマーキーとも呼ばれます。)このID は、カスタムアプリケーションをOAuth 認可サーバーに登録します。
OAuthClientId は、ユーザーがOAuth 経由で認証を行う前に設定する必要があるいくつかの接続パラメータの1つです。詳細は接続の確立を参照してください。
カスタムOAuth アプリケーションの作成時に割り当てられたクライアントシークレットを指定します。( コンシューマーシークレット とも呼ばれます。)このシークレットは、カスタムアプリケーションをOAuth 認可サーバーに登録します。
OAuthClientSecret は、ユーザーがOAuth 経由で認証を行う前に設定する必要があるいくつかの接続パラメータの1つです。詳細は接続の確立を参照してください。
委任されたリクエストのためのサービスアカウントE メールのスペース区切りのリスト。
サービスアカウントE メールは、スペース区切りのリストで指定する必要があります。
各サービスアカウントは、チェーン内の次のサービスアカウントのroles/iam.serviceAccountTokenCreator ロールを付与されている必要があります。
チェーンの最後のサービスアカウントは、リクエストするサービスアカウントのroles/iam.serviceAccountTokenCreator ロールが付与されている必要があります。 リクエストするサービスアカウントはRequestingServiceAccount プロパティで指定されたものです。
委任されたリクエストの場合、リクエストするサービスアカウントは、iam.serviceAccounts.getAccessToken 権限を持つ必要があることに注意してください。これは、serviceAccountTokenCreator ロールを介して付与することもできます。
委任されたリクエストを行うためのサービスアカウントのE メール。
委任されたリクエストで認証情報が要求されたアカウントのサービスアカウントのE メール。DelegatedServiceAccounts の委任されたサービスアカウントのリストを用いて、このプロパティは、委任されたリクエストを行うために使用されます。
このサービスアカウントには、IAM 権限iam.serviceAccounts.getAccessToken が必要です。
このセクションでは、本プロバイダーの接続文字列で設定可能なJWT OAuth プロパティの全リストを提供します。
| プロパティ | 説明 |
| OAuthJWTCert | JWT 証明書のストア。 |
| OAuthJWTCertType | JWT 証明書を格納するキーストアの種類。 |
| OAuthJWTCertPassword | OAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。 |
| OAuthJWTCertSubject | OAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。 |
| OAuthJWTIssuer | Java Web Token の発行者。 |
| OAuthJWTSubject | アプリケーションからデリゲートアクセスの要求対象となるユーザーサブジェクト。 |
JWT 証明書のストア。
クライアント証明書のための証明書ストア名。
OAuthJWTCertType フィールドは、OAuthJWTCert により指定された証明書ストアの種類を指定します。 ストアがパスワードで保護されている場合は、OAuthJWTCertPassword でパスワードを指定します。
OAuthJWTCert は、OAuthJWTCertSubject フィールドとともにクライアント証明書を指定するために使われます。 OAuthJWTCert に値がある場合で、OAuthJWTCertSubject が設定されている場合は、証明書の検索が始まります。 詳しくは、OAuthJWTCertSubject フィールドを参照してください。
証明書ストアの指定はプラットフォームに依存します。
Windows の共通のユーザとシステム証明書ストアの指定は以下のとおりです。
| MY | 個人証明書と関連付けられた秘密キーを格納している証明書ストア。 |
| CA | 証明機関の証明書。 |
| ROOT | ルート証明書。 |
| SPC | ソフトウェア発行元証明書。 |
Javaでは、証明書ストアは通常、証明書および任意の秘密キーを含むファイルです。
証明書ストアの種類がPFXFile の場合は、このプロパティにファイル名を設定します。 PFXBlob の場合は、このプロパティをPFX ファイルのバイナリコンテンツ(例えば、PKCS12証明書ストア)に設定する必要があります。
JWT 証明書を格納するキーストアの種類。
このプロパティには次の値の一つを設定できます。
| USER | Windows の場合、現在のユーザーにより所有された証明書ストアであることを指定します。 Note:この種類はJava では利用できません。 |
| MACHINE | Windows の場合、この証明書ストアがシステムストアであることを指定します。 Note:この種類はJava では利用できません。 |
| PFXFILE | この証明書ストアは、証明書を含むPFX(PKCS12)ファイルの名前です。 |
| PFXBLOB | この証明書ストアは、PFX(PKCS12)形式の証明書ストアを表すBase-64でエンコードされた文字列です。 |
| JKSFILE | この証明書ストアは、証明書を含むJava key store(JKS)ファイルの名前です。 Note:この種類はJava のみで利用できます。 |
| JKSBLOB | この証明書ストアは、Java key store(JKS)形式の証明書ストアを表すBase-64でエンコードされた文字列です。 Note:この種類はJava のみで利用できます。 |
| PEMKEY_FILE | この証明書ストアは、秘密キーと任意の証明書を含むPEM でエンコードされたファイルの名前です。 |
| PEMKEY_BLOB | この証明書ストアは、秘密キーと任意の証明書を含むBase-64でエンコードされた文字列です。 |
| PUBLIC_KEY_FILE | この証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むファイルの名前です。 |
| PUBLIC_KEY_BLOB | この証明書ストアは、PEM またはDER でエンコードされた公開キーの証明書を含むBase-64でエンコードされた文字列です。 |
| SSHPUBLIC_KEY_FILE | この証明書ストアは、SSH 公開キーを含むファイルの名前です。 |
| SSHPUBLIC_KEY_BLOB | この証明書ストアは、SSH 公開キーを含むBase-64でエンコードされた文字列です。 |
| P7BFILE | この証明書ストアは、証明書を含むPKCS7 ファイルの名前です。 |
| PPKFILE | この証明書ストアは、PuTTY 秘密キー(PPK)を含むファイルの名前です。 |
| XMLFILE | この証明書ストアは、XML 形式の証明書を含むファイルの名前です。 |
| XMLBLOB | この証明書ストアは、XML 形式の証明書を含む文字列の名前です。 |
| BCFKSFILE | この証明書ストアは、Bouncy Castle キーストアを含むファイルの名前です。 |
| BCFKSBLOB | この証明書ストアは、Bouncy Castle キーストアを含む文字列(Base-64エンコード)です。 |
| GOOGLEJSON | この証明書ストアは、サービスアカウント情報を含むJSON ファイルの名前です。Google サービスに接続する場合にのみ有効です。 |
| GOOGLEJSONBLOB | この証明書ストアは、サービスアカウントのJSON を含む文字列です。Google サービスに接続する場合にのみ有効です。 |
OAuth JWT 証明書のパスワード。パスワードを必要とする証明書ストアにアクセスするために使用されます。証明書ストアがパスワードを必要としない場合は、このプロパティを空白のままにします。
このプロパティは、証明書ストアを開くために必要なパスワードを指定します。ただし、ストアの種類がパスワードを必要とする場合に限ります。 パスワードが必要かどうかを判断するには、ご利用の証明書ストアのドキュメントまたは設定を参照してください。
GOOGLEJSON OAuthJWTCertType を使用する場合は必要ありません。Google JSON キーは暗号化されていません。
OAuth JWT 証明書のサブジェクトで、ストアで一致する証明書を検索するために使用されます。部分一致と、先頭の証明書を選択するためのワイルドカード '*' をサポートします。
このプロパティの値は、ストアで一致する証明書を検索するために使用されます。検索プロセスは以下のように動作します。
値を '*' に設定すると、ストアの先頭の証明書が自動的に選択されます。 証明書のサブジェクトは識別名フィールドおよび値のカンマ区切りのリストです。 例:CN=www.server.com, OU=test, C=US, [email protected]。一般的なフィールドには以下のものが含まれます。
| フィールド | 説明 |
| CN | 共通名。一般的には、www.server.com のようなホスト名です。 |
| O | 法人名 |
| OU | 法人の部署名 |
| L | 法人の住所(市町村名) |
| S | 法人の住所(都道府県) |
| C | 国名 |
| E | E メールアドレス |
フィールド値にカンマが含まれる場合は、引用符で囲んでください。例:"O=ACME, Inc."。
Java Web Token の発行者。
Java Web Token の発行者。 サービスアカウントのE メールアドレスの値を入力します。
GOOGLEJSON OAuthJWTCertType を使用する場合は必要ありません。Google JSON キーには、発行者アカウントのコピーが含まれています。
アプリケーションからデリゲートアクセスの要求対象となるユーザーサブジェクト。
アプリケーションからデリゲートアクセスの要求対象となるユーザーサブジェクトです。 アプリケーションが委任されたアクセスをリクエストするユーザーのE メールアドレスを入力します。
このセクションでは、本プロバイダーの接続文字列で設定可能なSSL プロパティの全リストを提供します。
| プロパティ | 説明 |
| SSLServerCert | TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。 |
TLS/SSL を使用して接続する際に、サーバーが受け入れ可能な証明書を指定します。
TLS/SSL 接続を使用する場合は、このプロパティを使用して、サーバーが受け入れるTLS/SSL 証明書を指定できます。コンピュータによって信頼されていない他の証明書はすべて拒否されます。
このプロパティは、次のフォームを取ります:
| 説明 | 例 |
| フルPEM 証明書(例では省略されています) | -----BEGIN CERTIFICATE----- MIIChTCCAe4CAQAwDQYJKoZIhv......Qw== -----END CERTIFICATE----- |
| 証明書を保有するローカルファイルへのパス。 | C:\cert.cer |
| 公開鍵(例では省略されています) | -----BEGIN RSA PUBLIC KEY----- MIGfMA0GCSq......AQAB -----END RSA PUBLIC KEY----- |
| MD5 Thumbprint (hex 値はスペースおよびコロン区切り) | ecadbdda5a1529c58a1e9e09828d70e4 |
| SHA1 Thumbprint (hex 値はスペースおよびコロン区切り) | 34a929226ae0819f2ec14b4a3d904f801cbb150d |
これを指定しない場合は、マシンが信用するすべての証明書が受け入れられます。
すべての証明書の受け入れを示すには、'*'を使用します。セキュリティ上の理由から、これはお勧めできません。
このセクションでは、本プロバイダーの接続文字列で設定可能なFirewall プロパティの全リストを提供します。
| プロパティ | 説明 |
| FirewallType | provider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。 |
| FirewallServer | ファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。 |
| FirewallPort | プロキシベースのファイアウォールで使用するTCP ポートを指定します。 |
| FirewallUser | プロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。 |
| FirewallPassword | プロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。 |
provider がプロキシベースのファイアウォールを介してトラフィックをトンネリングするために使用するプロトコルを指定します。
プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。
プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。
Note:デフォルトでは、Sync App はシステムプロキシに接続します。この動作を無効化し、次のプロキシタイプのいずれかに接続するには、ProxyAutoDetect をfalse に設定します。
次の表は、サポートされている各プロトコルのポート番号情報です。
| プロトコル | デフォルトポート | 説明 |
| TUNNEL | 80 | Sync App がGoogle BigQuery への接続を開くポート。トラフィックはこの場所のプロキシを経由して行き来します。 |
| SOCKS4 | 1080 | Sync App がGoogle BigQuery への接続を開くポート。SOCKS 4 は次にFirewallUser 値をプロキシに渡し、接続リクエストが許容されるかどうかを決定します。 |
| SOCKS5 | 1080 | Sync App がGoogle BigQuery にデータを送信するポート。SOCKS 5 プロキシに認証が必要な場合には、FirewallUser およびFirewallPassword をプロキシが認識する認証情報に設定します。 |
HTTP プロキシへの接続には、ProxyServer およびProxyPort ポートを使ってください。HTTP プロキシへの認証には、ProxyAuthScheme、ProxyUser、およびProxyPassword を使ってください。
ファイアウォールを通過し、ユーザーのクエリをネットワークリソースに中継するために使用されるプロキシのIP アドレス、DNS 名、またはホスト名を識別します。
プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。
プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。
プロキシベースのファイアウォールで使用するTCP ポートを指定します。
プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。
プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。
プロキシベースのファイアウォールに認証するアカウントのユーザーID を識別します。
プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。
プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。
プロキシベースのファイアウォールで認証するユーザーアカウントのパスワードを指定します。
プロキシベースのファイアウォール(またはプロキシファイアウォール)は、ユーザーのリクエストとそれがアクセスするリソースの間に介在するネットワークセキュリティデバイスです。 プロキシは認証済みのユーザーのリクエストを受け取り、ファイアウォールを通過して適切なサーバーにリクエストを送信します。
プロキシは、リクエストを送信したユーザーに代わってデータバケットを評価し転送するため、ユーザーはサーバーに直接接続することなく、プロキシのみに接続します。
このセクションでは、本プロバイダーの接続文字列で設定可能なProxy プロパティの全リストを提供します。
| プロパティ | 説明 |
| ProxyAutoDetect | provider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。 |
| ProxyServer | HTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレス。 |
| ProxyPort | クライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバー(ProxyServer 接続プロパティで設定)のTCP ポート。 |
| ProxyAuthScheme | ProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。 |
| ProxyUser | ProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名。 |
| ProxyPassword | ProxyUser 接続プロパティで指定されたユーザーに紐付けられたパスワード。 |
| ProxySSLType | ProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプ。 |
| ProxyExceptions | ProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。 |
provider が、手動で指定されたプロキシサーバーを使用するのではなく、既存のプロキシサーバー構成についてシステムプロキシ設定をチェックするかどうかを指定します。
この接続プロパティをTrue に設定すると、Sync App は既存のプロキシサーバー構成についてシステムプロキシ設定をチェックします(プロキシサーバーの詳細を手動で入力する必要はありません)。
この接続プロパティは他のプロキシ設定より優先されます。特定のプロキシサーバーに接続するためにSync App を手動で構成する場合は、False に設定します。
HTTP プロキシへの接続には、ProxyServer を参照してください。SOCKS やトンネリングなどの他のプロキシには、FirewallType を参照してください。
HTTP トラフィックをルートするプロキシサーバーのホストネームもしくはIP アドレス。
ProxyAutoDetect がFalse に設定されている場合、Sync App はこの接続プロパティで指定されたプロキシサーバーを通じてのみHTTP トラフィックをルーティングします。ProxyAutoDetect がTrue に設定されている場合(デフォルト)、Sync App は代わりにシステムプロキシ設定で指定されたプロキシサーバーを介してHTTP トラフィックをルーティングします。
クライアントとの間でHTTP トラフィックをルーティングするために予約された、指定されたプロキシサーバー(ProxyServer 接続プロパティで設定)のTCP ポート。
ProxyAutoDetect がFalse に設定されている場合、Sync App はこの接続プロパティで指定されたプロキシサーバーポートを通じてのみHTTP トラフィックをルーティングします。ProxyAutoDetect がTrue に設定されている場合(デフォルト)、Sync App は代わりにシステムプロキシ設定で指定されたプロキシサーバーポートを介してHTTP トラフィックをルーティングします。
その他のプロキシタイプについては、FirewallType を参照してください。
ProxyServer 接続プロパティで指定されたプロキシサーバーに対して認証する際にprovider が使用する認証方法を指定します。
認証タイプは次のいずれかです。
"NONE" 以外のすべての値については、ProxyUser およびProxyPassword 接続プロパティも設定する必要があります。
SOCKS 5 認証のような他の認証タイプを使用するには、FirewallType を参照してください。
ProxyServer 接続プロパティで指定されたプロキシサーバーに登録されているユーザーアカウントのユーザー名。
ProxyUser および ProxyPassword 接続プロパティは、ProxyServer で指定されたHTTP プロキシに対して接続よび認証するために使用されます。
ProxyAuthScheme で利用可能な認証タイプを1つ選択した後、このプロパティを以下のように設定します。
| ProxyAuthScheme の値 | ProxyUser に設定する値 |
| BASIC | プロキシサーバーに登録されているユーザーのユーザー名。 |
| DIGEST | プロキシサーバーに登録されているユーザーのユーザー名。 |
| NEGOTIATE | プロキシサーバーが属するドメインまたは信頼されたドメイン内の有効なユーザーであるWindows ユーザーのユーザー名。user@domain またはdomain\user の形式で指定。 |
| NTLM | プロキシサーバーが属するドメインまたは信頼されたドメイン内の有効なユーザーであるWindows ユーザーのユーザー名。user@domain またはdomain\user の形式で指定。 |
| NONE | ProxyPassword 接続プロパティは設定しないでください。 |
Sync App は、ProxyAutoDetect がFalse に設定されている場合にのみ、このユーザー名を使用します。ProxyAutoDetect がTrue に設定されている場合(デフォルト)、Sync App は代わりにシステムのプロキシ設定で指定されているユーザー名を使用します。
ProxyUser 接続プロパティで指定されたユーザーに紐付けられたパスワード。
ProxyUser および ProxyPassword 接続プロパティは、ProxyServer で指定されたHTTP プロキシに対して接続よび認証するために使用されます。
ProxyAuthScheme で利用可能な認証タイプを1つ選択した後、このプロパティを以下のように設定します。
| ProxyAuthScheme の値 | ProxyPassword に設定する値 |
| BASIC | ProxyUser で指定したプロキシサーバーユーザーに紐付けられたパスワード。 |
| DIGEST | ProxyUser で指定したプロキシサーバーユーザーに紐付けられたパスワード。 |
| NEGOTIATE | ProxyUser で指定したWindows ユーザーアカウントに紐付けられたパスワード。 |
| NTLM | ProxyUser で指定したWindows ユーザーアカウントに紐付けられたパスワード。 |
| NONE | ProxyPassword 接続プロパティは設定しないでください。 |
SOCKS 5 認証もしくは、トンネリングは、FirewallType を参照してください。
Sync App は、ProxyAutoDetect がFalse に設定されている場合にのみ、このパスワードを使用します。ProxyAutoDetect がTrue に設定されている場合(デフォルト)、Sync App は代わりにシステムのプロキシ設定で指定されているパスワードを使用します。
ProxyServer 接続プロパティで指定されたプロキシサーバーに接続する際に使用するSSL タイプ。
このプロパティは、ProxyServer で指定されたHTTP プロキシへの接続にSSL を使用するかどうかを決定します。この接続プロパティには、以下の値を設定できます。
| AUTO | デフォルト設定。ProxyServer がHTTPS URL に設定されている場合、Sync App は、TUNNEL オプションを使用します。ProxyServer がHTTP URL に設定されている場合、コンポーネントはNEVER オプションを使用します。 |
| ALWAYS | 接続は、常にSSL 有効となります。 |
| NEVER | 接続は、SSL 有効になりません。 |
| TUNNEL | 接続はトンネリングプロキシ経由で行われます。プロキシサーバーがリモートホストへの接続を開き、プロキシを経由して通信が行われます。 |
ProxyServer 接続プロパティで設定されたプロキシサーバー経由での接続が免除される宛先ホスト名またはIP のセミコロン区切りのリスト。
ProxyServer は、このプロパティで定義されたアドレスを除くすべてのアドレスに使用されます。セミコロンを使用してエントリを区切ります。
Sync App はデフォルトでシステムプロキシ設定を使用するため、それ以上の設定は必要ありません。この接続にプロキシ例外を明示的に設定する場合は、ProxyAutoDetect をFalse に設定します。
このセクションでは、本プロバイダーの接続文字列で設定可能なLogging プロパティの全リストを提供します。
| プロパティ | 説明 |
| LogModules | ログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。 |
ログファイルに含めるコアモジュールを指定します。セミコロンで区切られたモジュール名のリストを使用します。デフォルトでは、すべてのモジュールがログに記録されます。
このプロパティは、含めるログモジュールを指定することでログファイルの内容をカスタマイズすることができます。 ログモジュールは、クエリ実行、メタデータ、SSL 通信などの異なる領域にログ情報を分類します。 各モジュールは4文字のコードで表され、文字の名前の場合は末尾にスペースが必要なものもあります。
例えば、EXEC はクエリ実行をログに記録し、INFO は一般的なプロバイダーメッセージをログに記録します。 複数のモジュールを含めるには、次のように名前をセミコロンで区切ります:INFO;EXEC;SSL。
Verbosity 接続プロパティは、このプロパティで指定されたモジュールベースのフィルタリングよりも優先されます。 Verbosity レベルを満たし、指定されたモジュールに属するログエントリのみが記録されます。 利用可能なすべてのモジュールをログファイルに含めるには、このプロパティを空白のままにします。
利用可能なモジュールの完全なリストとログの設定に関する詳細な手引きについては、ログ の「高度なログの記録」セクションを参照してください。
このセクションでは、本プロバイダーの接続文字列で設定可能なSchema プロパティの全リストを提供します。
| プロパティ | 説明 |
| Location | テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。 |
| BrowsableSchemas | レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。 |
| Tables | レポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。 |
| Views | レポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。 |
| RefreshViewSchemas | provider が自動的に最新のビュースキーマを決定することを許可します。 |
| ShowTableDescriptions | プラットフォームのメタデータAPI とsys_tables / sys_views を介してテーブルの説明を返すかどうかを制御します。 |
| PrimaryKeyIdentifiers | Set this property to define primary keys. |
| AllowedTableTypes | Specifies what kinds of tables will be visible. |
| FlattenObjects | Determines whether the provider flattens STRUCT fields into top-level columns. |
テーブル、ビュー、およびストアドプロシージャを定義するスキーマファイルを格納するディレクトリの場所を指定します。サービスの要件に応じて、これは絶対パスまたは相対パスのいずれかで表されます。
Location プロパティは、定義をカスタマイズしたり(例えば、カラム名を変更する、カラムを無視するなど)、新しいテーブル、ビュー、またはストアドプロシージャでデータモデルを拡張する場合にのみ必要です。
指定しない場合、デフォルトの場所は%APPDATA%\\CData\\GoogleBigQuery Data Provider\\Schema となり、%APPDATA%はユーザーのコンフィギュレーションディレクトリに設定されます:
| プラットフォーム | %APPDATA% |
| Windows | APPDATA 環境変数の値 |
| Linux | ~/.config |
レポートされるスキーマを利用可能なすべてのスキーマのサブセットに制限するオプション設定。例えば、 BrowsableSchemas=SchemaA,SchemaB,SchemaC です。
利用可能なデータベーススキーマをすべてリストすると余分な時間がかかり、パフォーマンスが低下します。 接続文字列にスキーマのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。
レポートされるテーブルを利用可能なすべてのテーブルのサブセットに制限するオプション設定。例えば、 Tables=TableA,TableB,TableC です。
データベースによっては、利用可能なすべてのテーブルをリストするのに時間がかかり、パフォーマンスが低下する場合があります。 接続文字列にテーブルのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。
利用可能なテーブルがたくさんあり、すでに作業したいテーブルが決まっている場合、このプロパティを使用して対象のテーブルのみに表示を制限することができます。これを行うには、カンマ区切りのリストで使用したいテーブルを指定します。各テーブルは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Tables=TableA,[TableB/WithSlash],WithCatalog.WithSchema.`TableC With Space` です。
Note:複数のスキーマまたはカタログを持つデータソースに接続する場合は、表示する各テーブルを完全修飾名で指定する必要があります。これにより、複数のカタログやスキーマに存在するテーブルが混同されることを防ぎます。
レポートされたビューを使用可能なテーブルのサブセットに制限するオプション設定。例えば、 Views=ViewA,ViewB,ViewC です。
データベースによっては、利用可能なすべてのビューをリストするのに時間がかかり、パフォーマンスが低下する場合があります。 接続文字列にビューのリストを指定することで、時間を節約しパフォーマンスを向上させることができます。
利用可能なビューがたくさんあり、すでに作業したいビューが決まっている場合、このプロパティを使用して対象のビューのみに表示を制限することができます。これを行うには、カンマ区切りのリストで使用したいビューを指定します。各ビューは、角かっこ、二重引用符、またはバッククオートを使用してエスケープされた特殊文字列を含む有効なSQL 識別子である必要があります。 例えば、Views=ViewA,[ViewB/WithSlash],WithCatalog.WithSchema.`ViewC With Space` です。
Note:複数のスキーマまたはカタログを持つデータソースに接続する場合は、確認する各ビューを完全修飾名で指定する必要があります。これにより、複数のカタログやスキーマに存在するビューが混同されることを防ぎます。
provider が自動的に最新のビュースキーマを決定することを許可します。
BigQuery ビューを使用する場合、BigQuery はビュー自体とともにビュースキーマのコピーを保存します。ただし、これらの保存されたビュースキーマは、ビューで使用されるテーブルが変更されても更新されません。これは、保存されたビュースキーマが容易に古くなり、ビューを使用するクエリが失敗する可能性があることを意味します。
デフォルトでは、Sync App は保存されたビュースキーマを使用せず、代わりにビューをクエリして、利用可能なカラムを決定します。これにより、スキーマが最新であることが保証されますが、Sync App がジョブのクエリを開始する必要があります。
このオプションを無効にすると、保存されたビュースキーマを使用するようにSync App に強制できます。これにより、ビュースキーマを取得するときにSync App がクエリを実行することを防ぐことができますが、同時に、スキーマが古い場合はビューを使用するクエリが失敗することも意味します。
プラットフォームのメタデータAPI とsys_tables / sys_views を介してテーブルの説明を返すかどうかを制御します。
デフォルトでは、テーブルの説明は表示されません。これは、API が、テーブルの読み取りに通常必要なリクエスト以上の追加のリクエストを必要とするためです。
このオプションを有効にするとテーブルの説明が表示されますが、テーブルリストを取得する際に、テーブルごとに追加のAPI リクエストが発生します。これにより、大規模なデータセットでのメタデータ操作が遅くなる可能性があります。
Set this property to define primary keys.
Google BigQuery does not natively support primary keys, but for certain DML operations or database tools you may need to define them. By default this option is disabled and no tables will have primary keys except for the ones defined in schema files (if you set Location).
Primary keys are defined using a list of rules which match tables and provide a list of key columns. For example, PrimaryKeyIdentifiers="*=key;transactions=tx_date,tx_serial;user_comments=" has three rules separated by semicolons:
Note that the table names can include just the table, the table and dataset or the table, dataset and project.
Both column and table names may be quoted using SQL quotes:
/* Rules with just table names use the connection ProjectId (or DataProjectId) and DatasetId. All these rules refer to the same table with a connection where ProjectId=someProject;DatasetId=someDataset */ someTable=a,b,c someDataset.someTable=a,b,c someProject.someDataset.someTable=a,b,c /* Any table or column name may be quoted */ `someProject`."someDataset".[someTable]=`a`,[b],"c"
Specifies what kinds of tables will be visible.
This option is a comma-separated list of the table type values that the Sync App displays. Any table-like or view-like entity that doesn't have a matching type will not be reported when listing tables.
For example, to restrict the Sync App to listing only simple tables and views, this option would be set to TABLE,VIEW
Determines whether the provider flattens STRUCT fields into top-level columns.
By default the Sync App reports each field in a STRUCT column as its own column while the STRUCT column itself is hidden.
This process is recursively applied to nested STRUCT values.
For example, if the following table is defined in Google BigQuery then the Sync App reports 3 columns: location.coords.lat, location.coords.lon and location.country:
CREATE TABLE t(location STRUCT<coords STRUCT<lat FLOAT64, lon FLOAT64>, country STRING>);
If this property is disabled, then the top-level STRUCT is not expanded and is left as its own column. The value of this column is reported as a JSON aggregate. In the above example, the Sync App reports only the location column when flattening is disabled.
このセクションでは、本プロバイダーの接続文字列で設定可能なMiscellaneous プロパティの全リストを提供します。
| プロパティ | 説明 |
| StorageTimeout | How long a Storage API connection may remain active before the provider reconnects. |
| EmptyArraysAsNull | Whether empty arrays are represented as 'null' or as '[]' |
| HidePartitionColumns | Whether partition tables will show the columns _PARTITIONDATE and _PARTITIONTIME. |
| AllowAggregateParameters | QueryPassthrough が有効になっているときに、パラメータで生の集計を使用できるようにします。 |
| ApplicationName | An application name in the form application/version. For example, AcmeReporting/1.0. |
| AuditLimit | 監査テーブル内に保存される行の最大数。 |
| AuditMode | 監査テーブルに記録するprovider アクション。 |
| AWSWorkloadIdentityConfig | AWS 経由でWorkload Identity Federation を使用する場合に指定する設定プロパティ。 |
| BigQueryOptions | BigQuery オプションのカンマ区切りのリスト。 |
| GenerateSchemaFiles | スキーマを生成して保存するユーザーの好みのタイミングを示します。 |
| MaximumBillingTier | MaximumBillingTier はTB あたりの基本料金の乗数となる正の整数です。例えばMaximumBillingTier を2 に設定すると、そのクエリの最大費用はTB あたり2x 基本価格になります。 |
| MaximumBytesBilled | BigQuery がジョブがキャンセルされる前に消費を許容するバイト数を制限します。 |
| MaxRows | 集計やGROUP BY を使用しないクエリで返される最大行数を指定します。 |
| Other | 特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。 |
| PseudoColumns | テーブルカラムとして公開する擬似カラムを指定します。'TableName=ColumnName;TableName=ColumnName' という形式を使用します。デフォルトは空の文字列で、このプロパティを無効にします。 |
| QueryPassthrough | このオプションは、クエリをGoogle BigQuery サーバーにas-is で渡します。 |
| SupportCaseSensitiveTables | デフォルトでは、provider はテーブル名を大文字小文字を区別しないものとして扱います。そのため、複数のテーブルが同じ名前で大文字小文字だけが異なる場合、メタデータには1つだけがレポートされます。 |
| TableSamplePercent | This determines what percent of a table is sampled with the TABLESAMPLE operator. |
| Timeout | タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。 |
| UserDefinedViews | カスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。 |
| WorkloadPoolId | Workload Identity Federation プールのID。 |
| WorkloadProjectId | Workload Identity Federation プールをホストするGoogle Cloud プロジェクトのID。 |
| WorkloadProviderId | Workload Identity Federation プールプロバイダーのID。 |
How long a Storage API connection may remain active before the provider reconnects.
Google BigQuery and many proxies/firewalls restrict the amount of time that idle connections stay alive before they are forcibly closed. This can be a problem when using the Storage API because the Sync App may stream data faster than it can be consumed. While the consumer is catching up, the Sync App does not use its connection and it may be closed by the next time the Sync App uses it.
To avoid this the Sync App will automatically close and reopen the connection if it has been active for too long. This property controls how many seconds the connection has to be active for the Sync App to reset it. To disable these resets this property can also be set to 0 or a negative value.
Whether empty arrays are represented as 'null' or as '[]'
This property is enabled by default, so empty arrays are represented as 'null' for consistency with representing empty aggregates. To mimic the native driver and represente empty arrays as '[]', this property can be disabled.
Whether partition tables will show the columns _PARTITIONDATE and _PARTITIONTIME.
This property is disabled by default, so partition tables will show the pseudocolumns _PARTITIONDATE and _PARTITIONTIME. To hide these columns, as is done in the native driver and the BigQuery console, this property can be enabled.
QueryPassthrough が有効になっているときに、パラメータで生の集計を使用できるようにします。
このオプションは、QueryPassthrough 経由でダイレクトクエリを使用する場合の文字列パラメータの処理方法に影響します。例えば、このクエリを考えてみましょう:
INSERT INTO proj.data.tbl(x) VALUES (@x)
デフォルトでは、このオプションは無効になっており、文字列パラメータは引用符で囲まれSQL 文字列にエスケープされます。つまり、任意の値を文字列パラメータとして安全に使用できますが、パラメータを生の集計値として使用できないことも意味します。
/*
* If @x is set to: test value ' contains quote
*
* Result is a valid query
*/
INSERT INTO proj.data.tbl(x) VALUES ('test value \' contains quote')
/*
* If @x is set to: ['valid', ('aggregate', 'value')]
*
* Result contains string instead of aggregate:
*/
INSERT INTO proj.data.tbl(x) VALUES ('[\'valid\', (\'aggregate\', \'value\')]')
このオプションを有効にすると、文字列パラメータはクエリに直接挿入されます。つまり、生の集計をパラメータとして使用できますが、すべての単純な文字列をエスケープする必要があることも意味します。
/*
* If @x is set to: test value ' contains quote
*
* Result is an invalid query
*/
INSERT INTO proj.data.tbl(x) VALUES (test value ' contains quote)
/*
* If @x is set to: ['valid', ('aggregate', 'value')]
*
* Result is an aggregate
*/
INSERT INTO proj.data.tbl(x) VALUES (['valid', ('aggregate', 'value')])
An application name in the form application/version. For example, AcmeReporting/1.0.
The Sync App identifies itself to BigQuery using a Google partner User-Agent header. The first part of the User-Agent is fixed and identifies the client as a specific build of the CData Sync App. The last portion reports the specific application using the Sync App.
監査テーブル内に保存される行の最大数。
AuditMode オプションで監査が有効になっている場合、このプロパティを使用して、 監査テーブルで一度に許可される行数を決定します。
デフォルトではこのプロパティは1000です。これは、監査テーブルで使用できるのは 直近の1000監査イベントのみであることを意味します。
このプロパティは-1 に設定することも可能です。これにより、監査テーブルのサイズに
制限がなくなります。このモードでは、Sync App が過剰なメモリを使用しないように、
Sync App監査テーブルを定期的にクリアする必要があります。
DELETE FROM AuditJobs#TEMP
監査テーブルに記録するprovider アクション。
Sync App は、クエリを実行する際の特定の内部アクションを記録できます。 このオプションにリストされているアクションのそれぞれについて、Sync App はテンポラリ監査テーブルを作成して、アクションが発生したタイミング、アクションを引き起こしたクエリ、その他の関連情報を記録します。
デフォルトではこのオプションは'none' に設定されており、Sync App は監査情報を記録しません。 このオプションは、以下のアクションのカンマ区切りリストに設定することもできます。
| モード名 | 監査テーブル | 説明 | カラム |
| start-jobs | AuditJobs#TEMP | Sync App によって開始されたすべてのジョブを記録します | Timestamp,Query,ProjectId,Location,JobId |
これらのテーブルのサイズを制限する方法の詳細については、AuditLimit を参照してください。
AWS 経由でWorkload Identity Federation を使用する場合に指定する設定プロパティ。
このプロパティは、Key=Value プロパティのセミコロン区切りリストとしてフォーマットされ、値はオプションで引用符で囲むこともできます。
例えば、この設定はユーザーのルートキーを使用してAWS で認証します:
AWSWorkloadIdentityConfig="AuhtScheme=AwsRootKeys;AccessKey='AKIAABCDEF123456';SecretKey=...;Region=us-east-1"
BigQuery オプションのカンマ区切りのリスト。
Google BigQuery オプションのリスト:
| オプション | 説明 |
| gbqoImplicitJoinAsUnion | このオプションは、ドライバーがSQL92 で予期されるようにIMPLICIT JOIN をCROSS JOIN に変換することを防止します。そのかわりに、そのままIMPLICIT JOIN として残され、Google BigQuery はUNION ALL として実行します。 |
スキーマを生成して保存するユーザーの好みのタイミングを示します。
このプロパティは、Location で指定されたパスの.rsd ファイルにスキーマをアウトプットします。
有効な設定は次のとおりです。
GenerateSchemaFiles をOnUse に設定すると、Sync App はSELECT クエリを実行したときにスキーマを生成します。スキーマはクエリのそれぞれの参照されたテーブルに対して生成されます。
GenerateSchemaFiles をOnCreate に設定すると、CREATE TABLE クエリが実行されたときにのみスキーマが生成されます。
このプロパティのもう一つの使い方は、接続するときにデータベース内のすべてのテーブルのスキーマを取得することです。これには、GenerateSchemaFiles をOnStart に設定して接続します。
MaximumBillingTier はTB あたりの基本料金の乗数となる正の整数です。例えばMaximumBillingTier を2 に設定すると、そのクエリの最大費用はTB あたり2x 基本価格になります。
このジョブの課金階層を制限します。この階層を超えるリソース使用量を持つクエリは失敗します(料金は発生しません)。指定がない場合は、プロジェクトのデフォルトに設定されます。 BigQuery が標準のTB 課金階層で完了できないクエリを実行した場合、BigQuery はbillingTierLimitExceeded エラー、およびクエリの費用がどのくらいになるかの見積もりを返します。 より高い課金階層でクエリを実行するには、クエリリクエストの一部としてmaximumBillingTier の新しい値を渡します。MaximumBillingTier はTB あたりの基本料金の乗数となる正の整数です。例えばMaximumBillingTier を2 に設定すると、そのクエリの最大費用はTB あたり2x 基本価格になります。
BigQuery がジョブがキャンセルされる前に消費を許容するバイト数を制限します。
この値を設定すると、すべてのジョブはこの値をデフォルトの請求上限として使用します。ジョブがこれ以上のバイトを使用している場合、BigQuery はそれをキャンセルし課金されません。 デフォルトでは上限はなく、すべてのジョブは消費したバイト数に応じて課金されます。
これは、DestinationTable を使用する場合、またはInsertJob ストアドプロシージャを使用する場合にのみ効果があります。BigQuery では標準のクエリジョブにバイト制限を設定できません。
集計やGROUP BY を使用しないクエリで返される最大行数を指定します。
このプロパティは、集計やGROUP BY 句を含まないクエリに対してSync App が返す行数の上限を設定します。 この制限により、クエリがデフォルトで過度に大きな結果セットを返さないようにします。
クエリにLIMIT 句が含まれている場合、クエリで指定された値がMaxRows 設定よりも優先されます。 MaxRows が"-1" に設定されている場合、LIMIT 句が明示的にクエリに含まれていない限り、行の制限は行われません。
このプロパティは、非常に大きなデータセットを返す可能性のあるクエリを実行する際に、パフォーマンスを最適化し過剰なリソース消費を防ぐのに役立ちます。
特定のユースケースに対して追加の隠しプロパティを指定します。これらは通常のprovider の機能では必要ありません。複数のプロパティを定義するには、セミコロンで区切られたリストを使用します。
このプロパティは、シニアユーザーが特定のシナリオに対して隠しプロパティを設定できるようにします。 これらの設定は通常のユースケースには必要ありませんが、特定の要件に対応したり、追加の機能を提供したりすることができます。 複数のプロパティをセミコロン区切りのリストで定義できます。
Note: 特定のシナリオや問題に対処するためにサポートチームから助言があった場合にのみ、これらのプロパティを設定することを強く推奨します。
複数のプロパティをセミコロン区切りリストで指定します。
| DefaultColumnSize | データソースがメタデータにカラムの長さを提供しない場合に、文字列フィールドのデフォルトの長さを設定します。デフォルト値は2000です。 |
| ConvertDateTimeToGMT | 日時の値を、マシンのローカルタイムではなくGMT グリニッジ標準時に変換するかどうかを決定します。 |
| RecordToFile=filename | 基底のソケットデータ転送を指定のファイルに記録します。 |
テーブルカラムとして公開する擬似カラムを指定します。'TableName=ColumnName;TableName=ColumnName' という形式を使用します。デフォルトは空の文字列で、このプロパティを無効にします。
このプロパティを使用すると、Sync App がテーブルカラムとして公開する擬似カラムを定義できます。
個々の擬似カラムを指定するには、以下の形式を使用します。"Table1=Column1;Table1=Column2;Table2=Column3"
すべてのテーブルのすべての擬似カラムを含めるには、次のようにします:"*=*"
このオプションは、クエリをGoogle BigQuery サーバーにas-is で渡します。
これが設定されていると、クエリはGoogle BigQuery に直接渡されます。
デフォルトでは、provider はテーブル名を大文字小文字を区別しないものとして扱います。そのため、複数のテーブルが同じ名前で大文字小文字だけが異なる場合、メタデータには1つだけがレポートされます。
このプロパティをtrue に設定すると、同じ名前で大文字小文字が異なるテーブルの名前は変更され、メタデータですべてレポートされるようになります。
This determines what percent of a table is sampled with the TABLESAMPLE operator.
This option can be set to make the Sync App use the TABLESAMPLE for each
table referenced by a query. The value determines what percent is provided to the
PERCENT clause. That clause will only be generated if this property's value is above
zero.
-- Input SQL SELECT * FROM `tbl` -- Generated Google BigQuery SQL when TableSamplePercent=10 SELECT * FROM `tbl` TABLESAMPLE SYSTEM (10 PERCENT)
This option is subject to a few limitations:
タイムアウトエラーがスローされ、処理をキャンセルするまでの秒数。
Timeout が0に設定されている場合は、操作がタイムアウトしません。処理が正常に完了するか、エラー状態になるまで実行されます。
Timeout の有効期限が切れても処理が完了していない場合は、Sync App は例外をスローします。
カスタムビューを定義するJSON 構成ファイルへのファイルパスを指定します。provider は、このファイルで指定されたビューを自動的に検出して使用します。
このプロパティを使用すると、UserDefinedViews.json というJSON 形式の構成ファイルを通じてカスタムビューを定義および管理できます。 これらのビューはSync App によって自動的に認識され、標準のデータベースビューのようにカスタムSQL クエリを実行できるようになります。 JSON ファイルは、各ビューをルート要素として定義し、その子要素として"query" を持ちます。この"query" にはビューのSQL クエリが含まれています。次に例を示します。
{
"MyView": {
"query": "SELECT * FROM [publicdata].[samples].github_nested WHERE MyColumn = 'value'"
},
"MyView2": {
"query": "SELECT * FROM MyTable WHERE Id IN (1,2,3)"
}
}
このプロパティを使用して、1つのファイルに複数のビューを定義し、ファイルパスを指定できます。 例:UserDefinedViews=C:\Path\To\UserDefinedViews.json。 このプロパティを使用すると、指定されたビューのみがSync App によって検知されます。
詳しくは、ユーザー定義ビュー を参照してください。
Workload Identity Federation プールのID。
Workload Identity Federation プールのID。
Workload Identity Federation プールをホストするGoogle Cloud プロジェクトのID。
Workload Identity Federation プールをホストするGoogle Cloud プロジェクトのID。
Workload Identity Federation プールプロバイダーのID。
Workload Identity Federation プールプロバイダーのID。
protobuf v. 3.5.1
Copyright 2008 Google Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Google Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Code generated by the Protocol Buffer compiler is owned by the owner of the input file used when generating it. This code is not standalone and requires a support library to be linked with it. This support library is itself covered by the above license.
Google API Protobuf Definitions (Arrow)
Apache License Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
(a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Google API Protobuf Definitions (Avro)
Apache License Version 2.0, January 2004
http://www.apache.org/licenses/v
vro TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
(a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.