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

> DataLakeCatalog 数据库引擎使您能够将 ClickHouse 连接到外部数据目录，并查询开放表格式中的数据

# DataLakeCatalog

`DataLakeCatalog` 数据库引擎使您能够将 ClickHouse 连接到外部
数据目录，并查询开放表格式中的数据，而无需复制数据。
这使 ClickHouse 成为一个强大的查询引擎，可与您现有的
数据湖基础设施无缝集成。

<div id="supported-catalogs">
  ## 支持的目录
</div>

DataLakeCatalog 引擎 支持以下数据目录：

* **AWS Glue Catalog** - 适用于 AWS 环境中的 Iceberg 表
* **Databricks Unity Catalog** - 适用于 Delta Lake 和 Iceberg 表
* **Hive Metastore** - 传统 Hadoop 生态系统中的目录
* **REST Catalogs** - 任何支持 Iceberg REST 规范的目录

<div id="creating-a-database">
  ## 创建数据库
</div>

要使用 `DataLakeCatalog` 引擎，你需要启用下面的相关设置：

```sql theme={null}
SET allow_experimental_database_iceberg = 1;
SET allow_experimental_database_unity_catalog = 1;
SET allow_experimental_database_glue_catalog = 1;
SET allow_experimental_database_hms_catalog = 1;
SET allow_experimental_database_paimon_rest_catalog = 1;
```

可使用以下语法创建带有 `DataLakeCatalog` 引擎的数据库：

```sql theme={null}
CREATE DATABASE database_name
ENGINE = DataLakeCatalog(catalog_endpoint[, user, password])
SETTINGS
catalog_type,
[...]
```

支持以下设置：

| 设置                      | 说明                                                                         |
| ----------------------- | -------------------------------------------------------------------------- |
| `catalog_type`          | 目录 类型：`glue`、`unity` (Delta) 、`rest` (Iceberg) 、`hive`、`onelake` (Iceberg) |
| `warehouse`             | 在目录中使用的仓库/数据库名称。                                                           |
| `catalog_credential`    | 目录的身份验证凭据 (例如 API key 或令牌)                                                 |
| `auth_header`           | 用于与目录服务进行身份验证的自定义 HTTP 请求头                                                 |
| `auth_scope`            | 用于身份验证的 OAuth2 作用域 (如果使用 OAuth)                                            |
| `storage_endpoint`      | 底层存储的端点 URL                                                                |
| `oauth_server_uri`      | 用于身份验证的 OAuth2 授权服务器 URI                                                   |
| `vended_credentials`    | 布尔值，表示是否使用目录提供的凭据 (支持 AWS S3 和 Azure ADLS Gen2)                            |
| `aws_access_key_id`     | 用于访问 S3/Glue 的 AWS access key ID (如果不使用目录提供的凭据)                            |
| `aws_secret_access_key` | 用于访问 S3/Glue 的 AWS secret access key (如果不使用目录提供的凭据)                        |
| `region`                | 服务所在的 AWS 区域 (例如 `us-east-1`)                                              |
| `dlf_access_key_id`     | 用于访问 DLF 的 access key ID                                                   |
| `dlf_access_key_secret` | 用于访问 DLF 的 access key Secret                                               |

<div id="examples">
  ## 示例
</div>

有关使用 DataLakeCatalog 引擎 的示例，请参见以下章节：

* [Unity Catalog](/zh/guides/use-cases/data-warehousing/unity-catalog)
* [Glue Catalog](/zh/guides/use-cases/data-warehousing/glue-catalog)
* OneLake Catalog
  可通过启用 `allow_experimental_database_iceberg` 或 `allow_database_iceberg` 使用。

```sql theme={null}
CREATE DATABASE database_name
ENGINE = DataLakeCatalog(catalog_endpoint)
SETTINGS
   catalog_type = 'onelake',
   warehouse = warehouse,
   onelake_tenant_id = tenant_id,
   oauth_server_uri = server_uri,
   auth_scope = auth_scope, 
   onelake_client_id = client_id, 
   onelake_client_secret = client_secret;
SHOW TABLES IN database_name;
SELECT count() from database_name.table_name;
```
