> ## 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.

> El motor de base de datos DataLakeCatalog le permite conectar ClickHouse a catálogos de datos externos y consultar datos en formatos de tabla abiertos

# DataLakeCatalog

El motor de base de datos `DataLakeCatalog` le permite conectar ClickHouse a catálogos de datos externos
y consultar datos en formatos de tabla abiertos sin necesidad de duplicarlos.
Esto transforma a ClickHouse en un potente motor de consultas que se integra perfectamente con
la infraestructura existente de su lago de datos.

<div id="supported-catalogs">
  ## Catálogos compatibles
</div>

El motor `DataLakeCatalog` es compatible con los siguientes catálogos de datos:

* **AWS Glue Catalog** - Para tablas Iceberg en entornos de AWS
* **Databricks Unity Catalog** - Para tablas Delta Lake e Iceberg
* **Hive Metastore** - Catálogo tradicional del ecosistema Hadoop
* **Catálogos REST** - Cualquier catálogo compatible con la especificación REST de Iceberg

<div id="creating-a-database">
  ## Crear una base de datos
</div>

Deberá habilitar la configuración correspondiente que se indica a continuación para usar el motor `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;
```

Las bases de datos con el motor `DataLakeCatalog` pueden crearse con la siguiente sintaxis:

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

Se admiten los siguientes ajustes:

| Configuración           | Descripción                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `catalog_type`          | Tipo de catálogo: `glue`, `unity` (Delta), `rest` (Iceberg), `hive`, `onelake` (Iceberg), `delta_sharing` (Iceberg, espacios de nombres planos)                                                                                                                                                                                                                                                                                     |
| `warehouse`             | Nombre del almacén/base de datos que se usará en el catálogo.                                                                                                                                                                                                                                                                                                                                                                       |
| `catalog_credential`    | Credencial de autenticación para el catálogo (p. ej., API key o token)                                                                                                                                                                                                                                                                                                                                                              |
| `auth_header`           | HTTP header personalizado para la autenticación con el servicio de catálogo                                                                                                                                                                                                                                                                                                                                                         |
| `auth_scope`            | Scope de OAuth2 para la autenticación (si se usa OAuth)                                                                                                                                                                                                                                                                                                                                                                             |
| `storage_endpoint`      | URL del endpoint del almacenamiento subyacente                                                                                                                                                                                                                                                                                                                                                                                      |
| `oauth_server_uri`      | URI del servidor de autorización de OAuth2 para la autenticación                                                                                                                                                                                                                                                                                                                                                                    |
| `vended_credentials`    | Valor booleano que indica si se deben usar las credenciales proporcionadas por el catálogo (admite AWS S3 y Azure ADLS Gen2)                                                                                                                                                                                                                                                                                                        |
| `aws_access_key_id`     | ID de la clave de acceso de AWS para acceder a S3/Glue (si no se usan credenciales proporcionadas)                                                                                                                                                                                                                                                                                                                                  |
| `aws_secret_access_key` | Clave de acceso secreta de AWS para acceder a S3/Glue (si no se usan credenciales proporcionadas)                                                                                                                                                                                                                                                                                                                                   |
| `region`                | Región de AWS para el servicio (p. ej., `us-east-1`)                                                                                                                                                                                                                                                                                                                                                                                |
| `dlf_access_key_id`     | ID de la clave de acceso para acceder a DLF                                                                                                                                                                                                                                                                                                                                                                                         |
| `dlf_access_key_secret` | Clave de acceso secreta para acceder a DLF                                                                                                                                                                                                                                                                                                                                                                                          |
| `force_add_bucket`      | Al construir las URL del almacenamiento de objetos a partir de la ubicación de la tabla proporcionada por el catálogo y `storage_endpoint`, anteponga el nombre del bucket/contenedor aunque el endpoint ya lo contenga. Valor predeterminado: `false`. Establézcalo en `true` para los catálogos que devuelven rutas sin el bucket y requieren que se agregue durante el paso de construcción de la URL (rutas de estilo Polaris). |

<div id="examples">
  ## Ejemplos
</div>

Consulte las secciones siguientes para ver ejemplos de uso del motor `DataLakeCatalog`:

* [Unity Catalog](/docs/es/guides/use-cases/data-warehousing/unity-catalog)
* [Glue Catalog](/docs/es/guides/use-cases/data-warehousing/glue-catalog)
* OneLake Catalog
  Puede usarse habilitando `allow_experimental_database_iceberg` o `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;
```

Para autenticarse sin compartir un secret de client, establezca `onelake_bearer_token` en un token Bearer obtenido previamente
(con alcance para [https://storage.azure.com](https://storage.azure.com)) en lugar de
`onelake_client_id`/`onelake_client_secret`. ClickHouse no actualiza el token, por lo que la
base de datos debe volver a crearse después de que caduque.
