# tBigQueryBulkExec

特定のデータをGoogle BigQueryに転送します。

コンポーネントtBigQueryOutputBulkとtBigQueryBulkExecは一般に、2ステッププロセスの一部として一緒に使います。最初のステップでは、出力ファイルが生成されます。2番目のステップでは、データセットをフィードするためにこのファイルを使います。これら2つのステップは、tBigQueryOutputコンポーネント内で融合しています。このコンポーネントについては別のセクションで詳しく説明しています。2つの別々のコンポーネントを使う利点は、データセットにロードする前にデータを変換できることです。

このコンポーネントは、Google Cloud StorageからGoogle BigQueryに特定のファイルを転送するか、Google Cloud Storageに特定のファイルをアップロードしてから、Google BigQueryに転送します。

## tBigQueryBulkExecの標準プロパティ

これらのプロパティは、標準ジョブのフレームワークで実行されているtBigQueryBulkExecを設定するために使われます。

標準のtBigQueryBulkExecコンポーネントは、ビッグデータファミリーに属しています。

このフレームワーク内のコンポーネントは、すべてのTalend製品で利用できます。

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。<br><br><ul> <li> <p> <span>[Built-in] (組み込み)</span>: そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。</p> </li> </ul><br><br>スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。変更を加えると、スキーマは自動的に組み込みになります。<br><br><ul> <li> <p> <span>[View schema] (スキーマを表示)</span>: スキーマのみを表示する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Change to built-in property] (組み込みのプロパティに変更)</span>: ローカルで変更を行うためにスキーマを<span>組み込み</span>に変更する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Update repository connection] (リポジトリー接続をアップデート)</span>: リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。</p> <p>変更を現在のジョブにのみ反映する場合は、変更後、<span>[No] (いいえ)</span>を選択し、<span>[Repository Content] (リポジトリーコンテンツ)</span>ウィンドウで再びこのスキーマのメタデータを選択します。</p> </li> </ul> |
| [Authentication mode] (認証モード) | プロジェクトの認証に使用されるモードを選択します。<br><br><ul> <li><span>[Service account] (サービスアカウント)</span>: Google Cloud Platformプロジェクトに関連付けられているGoogleアカウントを使って認証します。このモードを選択すると、認証情報は<span>[Service account credentials file] (サービスアカウント認証情報ファイル)</span>フィールドに入力する必要があります。</li> <li><span>ワークロードIDフェデレーション</span>: GoogleワークロードIDプールを介して認証を行うことで、サービスアカウントキーを使用することなく、AWS、Azure、OIDCなどのIDプロバイダーとの統合が可能になります。このモードを選択する場合、IDフェデレーションの設定は、[<span>クライアントライブラリ設定ファイル</span>]フィールドで指定する必要があります。</li> <li><span>[Application Default Credentials] (アプリケーションのデフォルト認証情報)</span>: アプリケーションのデフォルト認証情報を使って認証します。このモードを選択した場合、アプリケーション環境に基づいて認証情報が自動的に検索されるので、追加のパラメーターを定義する必要はありません。</li> <li> <span>OAuth2 - 認証コードの付与</span>: OAuth認証情報を使って認証します。OAuth認証情報は[<span>クライアントID</span>]、[<span>クライアントシークレット</span>]、[<span>認証コード</span>]の各フィールドに入力する必要があります。このモードを選択すると、実行時に[<span>実行</span>]コンソールにURLが表示されます。それをWebブラウザーに貼り付け、URL内の<kbd>コード</kbd>値をコピーします。[<span>認証コード</span>]フィールドに認証コードを貼り付けます。次回ジョブを実行する際に、設定が保存されているため、BigQueryにアクセスできます。</li> <li> <span>[OAuth Access Token] (OAuth アクセストークン)</span>: OAuthアクセストークンを使用して認証します。このモードを選択する場合、トークンは[<span>OAuthアクセストークン</span>]ファイルに情報を提供する必要があります。 </li> </ul><br><br>Google Cloudの認証プロセスに関する詳細は、[Google Cloudのドキュメンテーション](https://cloud.google.com/docs/authentication/)をご参照ください。 |
| [Service account credentials file] (サービスアカウント認証情報ファイル) | 使用するサービスアカウント用に作成された認証情報ファイルへのパスを入力します。このファイルはTalendジョブが実際に起動および実行されるコンピューターに保管されている必要があります。<br><br>このプロパティは、サービスアカウントを使って認証する場合のみ利用できます。 |
| [Client ID] (クライアントID)および[Client Secret] (クライアントシークレット) | クライアントIDおよびクライアントシークレットを貼り付けます。両方とも使用するGoogle BigQueryサービスおよびCloud StorageサービスをホスティングしているプロジェクトのAPI Accessタブビューで作成され、および表示可能になっています。<br><br>クライアントシークレットを入力するには、クライアントシークレットフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスでクライアントシークレットを二重引用符の間に入力し、OKをクリックして設定を保存します。<br><br>これらのプロパティは、OAuth 2.0を使って認証する場合のみ利用可能です。 |
| [OAuth Access Token] (OAuthアクセストークン) | アクセストークンを入力します。<br><br>トークンのライフタイムは1時間です。コンポーネントは、トークン更新操作を行いませんが、1時間という制限時間を超えても操作できるよう、新しいアクセストークンをフェッチします。<br><br>このプロパティは、[OAuth Access Token] (OAuthアクセストークン)を使って認証する場合のみ利用できます。 |
| [Project ID] (プロジェクトID) | 使用する必要があるGoogle BigQueryサービスをホスティングしているプロジェクトのIDを貼り付けます。<br><br>プロジェクトのIDは、Google API ConsoleのURL、またはBigQuery Browser Toolでプロジェクト名にマウスを重ねると表示されます。 |
| [Authorization code] (認証コード) | 構築中のアクセスに対してGoogleにより提供される認証コードを貼り付けます。<br><br>認証コードを取得するには、このコンポーネントを使用してジョブを実行する必要があります。このジョブが実行を一時停止してURLアドレスを出力する場合は、このアドレスに移動して、表示されている認証コードをコピーします。 |
| [Dataset] (データセット) | データを転送する転送先のデータセットの名前を入力します。 |
| [Table] (テーブル) | データを転送する転送先のテーブルの名前を入力します。<br><br>このテーブルが存在しない場合は、[Create the table if it doesn't exist] (テーブルが存在しない場合は作成)チェックボックスをオンにします。 |
| [Action on data] (データでのアクション) | ターゲットテーブルにデータを転送する時に、ドロップダウンリストから実行するアクションを選択します。アクションは以下のようになります:<br><br><ul> <li> <p> <span>[Truncate] (切り捨て)</span>: テーブルの内容を空にし、転送されたデータで再作成します。 </p> </li> <li> <p> <span>[Append] (追加)</span>: テーブルの既存のデータに行を追加します。 </p> </li> <li> <p> <span>[Empty] (空)</span>: 空のテーブルに入力します。 </p> </li> </ul> |
| [Credential type] (認証情報のタイプ) | プロジェクトの認証に使用されるタイプを選択します。<br><br><ul> <li><span>[Service account] (サービスアカウント)</span>: この認証情報タイプを選択した場合、<span>[Basic settings] (基本設定)</span>ビューで定義されるパラメーターは<span>[Service account key] (サービスアカウントキー)</span>になります。</li> <li><span>[Application Default Credentials] (アプリケーションのデフォルト認証情報)</span>: この認証情報タイプを選択した場合、<span>[Basic settings] (基本設定)</span>ビューで定義されるパラメーターは<span>[Application Default Credentials] (アプリケー ションのデフォルト認証情報)</span>となります。</li> <li><span>[OAuth Access Token] (OAuthアクセストークン)</span>: この認証情報タイプを選択した場合、<span>[Basic settings] (基本設定)</span>ビューで定義されるパラメーターは<span>[OAuth Access Token] (OAuthアクセストークン)</span>になります。</li> </ul><br><br>デフォルトでは、[Service account] (サービスアカウント)が選択されています。[Credential type] (認証情報の種類)フィールドは、[Bulk file already exists in Google storage] (バルクファイルがGoogle Storageに既に存在する)チェックボックスがオフになっている場合のみ利用できます。 |
| [Bulk file already exists in Google storage] (バルクファイルがGoogle Storageに既に存在する) | このチェックボックスをオンにすると、Google Cloud Storage接続の認証情報が再利用され、[File] (ファイル)および[Header] (ヘッダー)フィールドが完成します。 |
| [Service account key] (サービスアカウントキー) | サービスアカウントキーフィールドの横にある[...]ボタンをクリックして、サービスアカウントキーを含むJSONファイルを参照します。<br><br>これらのプロパティは、サービスアカウントを使って認証する場合のみ利用可能です。 |
| [Access key] (アクセスキー)および[Secret key] (シークレットキー) | Google Cloud StorageにリクエストするためにGoogleから取得した認証情報を貼り付けます。<br><br>シークレットキーを入力するには、シークレットキーフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにシークレットキーを二重引用符の間に入力し、[OK] をクリックして設定を保存します。<br><br>これらのキーは、プロジェクトの[Google Cloud Storage]タブの[Interoperable Access]タブビューで参照できます。 |
| [OAuth Access Token] (OAuthアクセストークン) | アクセストークンを入力します。<br><br>トークンのライフタイムは1時間です。コンポーネントは、トークン更新操作を行いませんが、1時間という制限時間を超えても操作できるよう、新しいアクセストークンをフェッチします。<br><br><br>このプロパティは、[OAuth Access Token] (OAuthアクセストークン)を使って認証する場合のみ利用できます。 |
| [File to upload] (アップロードするファイル) | Google BigQueryに転送するデータがGoogle Cloud Storageに保管されていない場合は、参照するか、パスを入力します。 |
| [Bucket] (バケット) | Google BigQueryに転送するデータを保持するGoogle Cloud Storageコンテナーのバケットの名前を入力します。 |
| ファイル | Google Cloud Storageに保管され、Google BigQueryに転送されるデータのディレクトリーを入力します。<br><br>データがGoogle Cloud Storageにない場合、このディレクトリーはデータがGoogle BigQueryに転送する途中のデスティネーションとして使用されます。 |
| ヘッダー | 転送されたデータのヘッダーを無視するように値をセットします。たとえば、ヘッダーのないデータの行を無視するには、*0*を入力します 。 |
| [Die on error] (エラー発生時に強制終了) | このチェックボックスはデフォルトでオフになっています。すなわち、エラーが発生した行をスキップし、エラーが発生していない行のプロセスを完了させます。 |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Use a custom endpoint] (カスタムエンドポイントを使用) | デフォルトのエンドポイントの代わりにプライベートエンドポイントを使う場合は、このチェックボックスをオンにします。<br><br>選択後は、次のプロパティにURLを入力します。<br><br><ul> <li><span>Google Storage Private API URL</span> (形式は<span>https://storage.googleapis.com</span>)</li> <li><span>Google BigQuery Private API URL</span> (形式は<span>https://bigquery.googleapis.com</span>)</li> </ul><br><br>詳細は、Google Cloudのドキュメンテーションで[Access Google APIs through endpoints](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis)をご覧ください。<br><br>このプロパティは、[Service account] (サービスアカウント)と[Application Default Credentials] (アプリケーションのデフォルト認証情報)を使って認証する場合のみ利用できます。 |
| *[token properties File Name] (トークンプロパティファイル名)* | 使用する必要がある更新トークンファイルのパスを入力するか、参照します。<br><br>Google BigQueryから取得した[Authorization code] (認証コード)を使用する最初のジョブ実行の場合、このフィールドの値は、作成し使用する更新トークンファイルのディレクトリーと名前になります。トークンファイルが作成済みで、再利用する必要がある場合、このフィールドにディレクトリーとファイル名を指定する必要があります。<br><br>トークンファイル名のみを入力した場合、 Talend Studioにより、トークンファイルのディレクトリーがTalend Studioフォルダーのルートであると見なされます。<br><br>更新トークンの詳細は、Google BigQueryのマニュアルをご覧ください。 |
| [Set the field delimiter] (フィールド区切りを指定) | 転送されたデータのフィールドを区切る場合は、文字、文字列、正規表現のいずれかを入力します。 |
| [Use custom null marker] (カスタムnullマーカーを使用) | このオプションをオンにすると、特定の文字をnullマーカーとして使用できます。右側のテキスト枠内の二重引用符でnullマーカーを指定できます。<br><br>このオプションは、null値を持つフィールドによるエラーを防止します。 |
| [Drop table if exists] (存在する場合はテーブルをドロップ) | このテーブルが既に存在する場合は、[Drop table if exists] (存在する場合はテーブルをドロップ)チェックボックスをオンにして、[Table] (テーブル)フィールドで指定したテーブルを削除します。 |
| [Encoding] (エンコーディング) | リストからエンコーディングを選択するか、[CUSTOM] (カスタム)を選択して、手動で定義します。このフィールドはデータベースデータ処理の必須フィールドです。サポートされるエンコーディングは、使用しているJVMに応じて異なります。詳細は、[https://docs.oracle.com](https://docs.oracle.com/)をご覧ください。 |
| [tStatCatcher Statistics] (tStatCatcher統計) | このチェックボックスをオンにすると、コンポーネントレベルでログデータを収集できます。 |

## [Global Variables] (グローバル変数)

| 変数 | 説明 |
| --- | --- |
| ERROR\_MESSAGE | エラー発生時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数は、[Die on error] (エラー発生時に強制終了)チェックボックスがオンになっている場合のみ機能します。 |
| JOBID | ジョブのIDです。これはAfter変数で、文字列を返します。 |
| STATISTICS | ジョブの統計です。これはAfter変数で、文字列を返します。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| 使用ルール | このコンポーネントはスタンドアロンコンポーネントです。<br><br>このコンポーネントは、マルチリージョンロケーションとリージョナルロケーションの両方を自動的に検出し、サポートします。リージョナルロケーションを使用する時は、使用するバケットとデータセットは同じロケーションに入れておく必要があります。 |
| BigQueryデータ型の制限事項 | <ul> <li>BigQueryのレコードタイプはサポートされていません。</li> <li>DescriptionカラムやModeカラムなど、テーブルメタデータのカラムは取得できません。</li> <li>BigQueryシステムからのタイムスタンプデータは、文字列データにフォーマットされます。</li> <li>BigQueryの数値データはBigDecimalに変換されます。</li> </ul> |