> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-parallel-read-in-order-multi-part.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> ClickPipes を使用して、BigQuery から ClickHouse Cloud にデータをエクスポートする方法。

# BigQuery と ClickHouse Cloud のインテグレーション

export const Image = ({img, alt, size = "lg", background}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  const backgroundColor = background === "white" ? "white" : background === "black" ? "rgb(31 31 28)" : undefined;
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} style={{
    backgroundColor
  }} />
      </Frame>
    </div>;
};

export const PrivatePreviewBadge = () => {
  return <div className="privatePreviewBadge">
            <div className="privatePreviewIcon">
            <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                <path d="M5.33301 6.66667V4.66667V4.66667C5.33301 3.194 6.52701 2 7.99967 2V2C9.47234 2 10.6663 3.194 10.6663 4.66667V4.66667V6.66667" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path d="M8.00033 9.33337V11.3334" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
                <path fillRule="evenodd" clipRule="evenodd" d="M11.333 14H4.66634C3.92967 14 3.33301 13.4033 3.33301 12.6666V7.99996C3.33301 7.26329 3.92967 6.66663 4.66634 6.66663H11.333C12.0697 6.66663 12.6663 7.26329 12.6663 7.99996V12.6666C12.6663 13.4033 12.0697 14 11.333 14Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" />
            </svg>
        </div>
            {'プライベートプレビュー'}
        </div>;
};

<PrivatePreviewBadge />

<Note>
  [こちら](https://clickhouse.com/cloud/clickpipes/bigquery-connector)からプライベートプレビューのウェイトリストに登録できます。
</Note>

BigQuery ClickPipe は、BigQuery から ClickHouse Cloud へデータを取り込むための、フルマネージドで耐障害性に優れた仕組みです。プライベートプレビューでは、BigQuery のデータセットを探索やプロトタイピング向けに一括で読み込めるよう、**初期ロード** レプリケーション方式をサポートしています。将来的には **CDC** もサポートされる予定です。それまでは、初期ロード完了後に BigQuery のエクスポートデータを ClickHouse Cloud に継続的に同期する方法として、[Google Cloud Storage ClickPipe](/ja/integrations/clickpipes/object-storage/google-cloud-storage/overview) の利用を推奨します。

BigQuery ClickPipes は、ClickPipes UI を使用して手動でデプロイおよび管理できるほか、[OpenAPI](/ja/integrations/clickpipes/programmatic-access/openapi) や [Terraform](/ja/integrations/clickpipes/programmatic-access/terraform) を使用してプログラムからデプロイおよび管理することもできます。

<div id="features">
  ## 機能
</div>

<div id="initial-load">
  ### 初期ロード
</div>

BigQuery ClickPipe は、BigQuery の [データセット](https://docs.cloud.google.com/bigquery/docs/datasets-intro) 内で選択したテーブルを、1 回のバッチ操作で ClickHouse の宛先テーブルにロードします。インジェストタスクが完了すると、ClickPipe は自動的に自動停止します。初期ロードのインジェストプロセスでは、ステージング用にユーザーが用意した Google Cloud Storage (GCS) バケットが必要です。今後は、この中間バケットは ClickPipes によって提供および管理される予定です。

<Note>
  ClickPipes は、BigQuery からステージング用の GCS バケットにデータを取得するために、バッチ抽出ジョブを利用します。この操作によって、BigQuery で**処理料金が発生することはありません**。
</Note>

<div id="cdc">
  ### CDC (変更データキャプチャ)
</div>

CDC はプライベートプレビューでは**サポートされていません**が、今後サポートされる予定です。それまでは、初期ロードの完了後に BigQuery のデータエクスポートを ClickHouse Cloud に継続的に同期する方法として、[Google Cloud Storage ClickPipe](/ja/integrations/clickpipes/object-storage/google-cloud-storage/overview) の使用を推奨します。

<div id="data-type-mapping">
  ## データ型マッピング
</div>

[BigQuery のデータ型](https://docs.cloud.google.com/bigquery/docs/reference/standard-sql/data-types)。

| BigQuery データ型 | ClickHouse データ型 | 詳細 |
| - | - | - |
| `BOOL` | `Bool` | |
| `INT64` | `Int64` | |
| `FLOAT64` | `Float64` | |
| `NUMERIC` | `Decimal(P, S)` | 精度は最大 38、スケールは最大 9。精度/スケールは保持されます。 |
| `BIGNUMERIC` | `Decimal(P, S)` | 精度は最大 76、スケールは最大 38。精度/スケールは保持されます。 |
| `STRING` | `String` | |
| `BYTES` | `String` | |
| `JSON` | `String` (JSON) | |
| `DATE` | `Date` | |
| `TIME` | `String` | マイクロ秒精度。 |
| `DATETIME` | `DateTime` | マイクロ秒精度。 |
| `TIMESTAMP` | `DateTime64(6)` | マイクロ秒精度。 |
| `GEOGRAPHY` | `String` | |
| `GEOMETRY` | `String` | |
| `UUID` | `String` | |
| `ARRAY<T>` | `Array(T)` | |
| `ARRAY<DATE>` | `Array(Date)` | |
| `STRUCT` (RECORD) | `String` | |

<div id="access-control">
  ## アクセス制御
</div>

<div id="authentication">
  ### 認証
</div>

<div id="service-account-credentials">
  #### サービスアカウントの認証情報
</div>

ClickPipes は、[サービスアカウントキー](https://docs.cloud.google.com/iam/docs/keys-create-delete)を使用して Google Cloud プロジェクトに認証します。ClickPipes が BigQuery からデータをエクスポートし、ステージング用の GCS バケットにロードしてから ClickHouse に読み込めるように、必要最小限の[権限](#permissions)のみを持つ専用のサービスアカウントを作成することを推奨します。

<Image img="https://mintcdn.com/private-7c7dfe99-parallel-read-in-order-multi-part/MiCB1is-Av7QztGF/images/integrations/data-ingestion/clickpipes/bigquery/cp_iam.webp?fit=max&auto=format&n=MiCB1is-Av7QztGF&q=85&s=0ffad3e66220fb014984d89f393f47f2" alt="BigQuery と Cloud ストレージ の権限を持つサービスアカウントキーの作成" size="lg" border width="2682" height="1336" data-path="images/integrations/data-ingestion/clickpipes/bigquery/cp_iam.webp" />

<div id="permissions">
  ### 権限
</div>

<div id="bigquery">
  #### BigQuery
</div>

サービス アカウントには、次の BigQuery ロールが必要です。

* [`roles/bigquery.dataViewer`](https://docs.cloud.google.com/bigquery/docs/access-control#bigquery.dataViewer)
* [`roles/bigquery.jobUser`](https://docs.cloud.google.com/bigquery/docs/access-control#bigquery.jobUser)

アクセス範囲をさらに絞り込むには、ロールがアクセスできるリソースを制限するために [IAM 条件](https://docs.cloud.google.com/bigquery/docs/conditions) を使用することを推奨します。たとえば、`dataViewer` ロールを、同期対象のテーブルを含む特定のデータセットのみに制限できます。

```bash theme={null}
resource.name.startsWith("projects/<PROJECT_ID>/datasets/<DATASET_NAME>")
```

<div id="cloud-storage">
  #### Cloud ストレージ
</div>

サービス アカウントには、次の Cloud ストレージ ロールが必要です。

* [`roles/storage.objectAdmin`](https://docs.cloud.google.com/storage/docs/access-control/iam-roles#storage.objectAdmin)
* [`roles/storage.bucketViewer`](https://docs.cloud.google.com/storage/docs/access-control/iam-roles#storage.bucketViewer)

アクセス範囲をさらに絞るには、[IAM 条件](https://docs.cloud.google.com/bigquery/docs/conditions)を使用して、ロールがアクセスできるリソースを制限することを推奨します。たとえば、`objectAdmin` ロールと `bucketViewer` ロールを、ClickPipes の同期用に作成した専用バケットのみに制限できます。

```bash theme={null}
resource.name.startsWith("projects/_/buckets/<BUCKET_NAME>")
```
