> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Lakehouse runtime catalog（BigLake Metastore）

> このガイドでは、ClickHouse と Lakehouse runtime catalog（BigLake Metastore）を使用して、Google Cloud Storage 内のデータをクエリする手順を順を追って説明します。

export const BetaBadge = ({link, galaxyTrack, galaxyEvent}) => {
  if (link) {
    return <a href={link} target="_blank" rel="noopener noreferrer" className="betaBadge" onClick={galaxyTrack && galaxyEvent ? galaxyOnClick(galaxyEvent) : undefined}>
                <Icon />
                <span>ベータ</span>
            </a>;
  }
  return <div className="betaBadge">
            <Icon />
            <span>
                ベータ機能です。 
                <u>
                    <a href="/docs/docs/beta-and-experimental-features#beta-features">
                        詳しくはこちら。
                    </a>
                </u>
            </span>
        </div>;
};

<BetaBadge />

ClickHouse は、複数のカタログ (Unity、Glue、Polaris など) とのインテグレーションをサポートしています。このガイドでは、ClickHouse を介して [Lakehouse runtime catalog (別名 BigLake Metastore) ](https://docs.cloud.google.com/biglake/docs/) 内の Iceberg テーブルをクエリする手順を説明します。

<Note>
  この機能はベータのため、次の設定を有効にする必要があります。
  `SET allow_database_iceberg = 1;`
</Note>

<div id="prerequisites">
  ## 前提条件
</div>

ClickHouse から Lakehouse runtime catalog (BigLake Metastore) への接続を作成する前に、以下を用意してください。

* Lakehouse runtime catalog が有効になっている **Google Cloud プロジェクト**
* [Google Cloud Console](https://docs.cloud.google.com/docs/authentication/provide-credentials-adc) で作成した、アプリケーション用の **Application Default credentials** (OAuth クライアント ID とクライアント シークレット)
* 適切なスコープ (例: `https://www.googleapis.com/auth/bigquery` および GCS 用の storage スコープ) で OAuth フローを完了して取得した **リフレッシュ トークン**
* **warehouse** パス: テーブルが保存されている GCS バケット (必要に応じてプレフィックスを含む) 。例: `gs://your-bucket` または `gs://your-bucket/prefix`

<div id="creating-a-connection">
  ## Lakehouse runtime catalog と ClickHouse の接続を作成する
</div>

OAuth 認証情報を用意したら、[DataLakeCatalog](/docs/ja/reference/engines/database-engines/datalake) データベースエンジンを使用するデータベースを ClickHouse に作成します：

```sql theme={null}
SET allow_database_iceberg = 1;

CREATE DATABASE lakehouse_runtime_catalog
ENGINE = DataLakeCatalog('https://biglake.googleapis.com/iceberg/v1/restcatalog')
SETTINGS
    catalog_type = 'biglake',
    google_adc_client_id = '<client-id>',
    google_adc_client_secret = '<client-secret>',
    google_adc_refresh_token = '<refresh-token>',
    google_adc_quota_project_id = '<gcp-project-id>',
    warehouse = 'gs://<bucket_name>/<optional-prefix>';
```

<div id="querying-lakehouse-runtime-tables">
  ## ClickHouse から Lakehouse runtime catalog のテーブルをクエリする
</div>

接続を作成したら、Lakehouse runtime catalog に登録されているテーブルをクエリできます。

```sql theme={null}
USE LAKEHOUSE_RUNTIME_CATALOG;

SHOW TABLES;
```

出力例:

```response theme={null}
┌─name──────────────────────────────────────┐
│lakehouse_runtime_catalog.my_iceberg_table │   
└───────────────────────────────────────────┘
```

```sql theme={null}
SELECT count(*) FROM `lakehouse_runtime_catalog.my_iceberg_table`;
```

<Info>
  **バッククォートが必要です**

  ClickHouse は複数のネームスペースをサポートしていないため、バッククォートが必要です。
</Info>

テーブル定義を確認するには:

```sql theme={null}
SHOW CREATE TABLE `lakehouse_runtime_catalog.my_iceberg_table`;
```

<div id="loading-data-into-clickhouse">
  ## Lakehouse から ClickHouse へのデータの取り込み
</div>

Lakehouse runtime catalog のテーブルからローカルの ClickHouse テーブルにデータを取り込み、繰り返し実行するクエリを高速化するには、MergeTree テーブルを作成し、カタログからデータを挿入します:

```sql theme={null}
CREATE TABLE clickhouse_table
(
    `id` Int64,
    `event_time` DateTime64(3),
    `user_id` String,
    `payload` String
)
ENGINE = MergeTree
ORDER BY (event_time, id);

INSERT INTO local_events
SELECT * FROM lakehouse_runtime_catalog.`icebench.my_iceberg_table`;
```

初期ロード後は、レイテンシを抑えるために `clickhouse_table` に対してクエリを実行します。必要に応じて `INSERT INTO ... SELECT` を再実行し、BigLake のデータを更新してください。
