Este motor proporciona una integración con tablas existentes de Delta Lake en S3 y en almacenamiento de GCP y Azure, y admite tanto lecturas como escrituras (desde la v25.10).
Crear una tabla DeltaLake
Para crear una tabla DeltaLake, la tabla ya debe existir en el almacenamiento de S3, GCP o Azure. Los siguientes comandos no aceptan parámetros DDL para crear una tabla nueva.
Sintaxis
CREATE TABLE table_name
ENGINE = DeltaLake(url, [aws_access_key_id, aws_secret_access_key,] [extra_credentials])Parámetros del motor
url— URL del bucket con la ruta a la tabla Delta Lake existente.aws_access_key_id,aws_secret_access_key- Credenciales a largo plazo del usuario de la cuenta de AWS. Puede usarlas para autenticar sus solicitudes. El parámetro es opcional. Si no se especifican credenciales, se usan las del archivo de configuración.extra_credentials- Opcional. Se usa para pasar unrole_arnpara el acceso basado en roles en ClickHouse Cloud. Consulte Secure S3 para ver los pasos de configuración.
Los parámetros del motor pueden especificarse mediante colecciones con nombre.
Ejemplo
CREATE TABLE deltalake
ENGINE = DeltaLake('http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/test_table/', 'ABC123', 'Abc+123')Uso de colecciones con nombre:
<clickhouse>
<named_collections>
<deltalake_conf>
<url>http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/</url>
<access_key_id>ABC123</access_key_id>
<secret_access_key>Abc+123</secret_access_key>
</deltalake_conf>
</named_collections>
</clickhouse>CREATE TABLE deltalake
ENGINE = DeltaLake(deltalake_conf, filename = 'test_table')Sintaxis
-- Uso de una URL HTTPS (recomendado)
CREATE TABLE table_name
ENGINE = DeltaLake('https://storage.googleapis.com/<bucket>/<path>/', '<access_key_id>', '<secret_access_key>')Argumentos
url— URL del bucket de GCS a la tabla Delta Lake. Debe usar el formatohttps://storage.googleapis.com/<bucket>/<path>/(el endpoint de la API XML de GCS), ogs://<bucket>/<path>/, que se convierte automáticamente.access_key_id— Clave de acceso de GCS. Créela a través de Google Cloud Console → Cloud Storage → Settings → Interoperability.secret_access_key— Secreto de GCS.
Colecciones con nombre
También puede usar colecciones con nombre. Por ejemplo:
CREATE NAMED COLLECTION gcs_creds AS
access_key_id = '<access_key>',
secret_access_key = '<secret>';
CREATE TABLE gcpDeltaLake
ENGINE = DeltaLake(gcs_creds, url = 'https://storage.googleapis.com/<bucket>/<path>')Sintaxis
CREATE TABLE table_name
ENGINE = DeltaLake(connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression])Argumentos
connection_string— Cadena de conexión de Azurestorage_account_url— URL de la cuenta de almacenamiento de Azure (p. ej., https://account.blob.core.windows.net)container_name— Nombre del contenedor de Azureblobpath— Ruta a la tabla Delta Lake dentro del contenedoraccount_name— Nombre de la cuenta de almacenamiento de Azureaccount_key— Clave de la cuenta de almacenamiento de Azure
Escribir datos con una tabla DeltaLake
Una vez que haya creado una tabla con el motor de tabla DeltaLake, puede insertar datos en ella con:
SET allow_delta_lake_writes = 1;
INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);Las escrituras de Delta Lake son una funcionalidad Beta deshabilitada de forma predeterminada y deben habilitarse con SET allow_delta_lake_writes = 1; (disponible a partir de la versión 26.7; en versiones anteriores use SET allow_experimental_delta_lake_writes = 1;).
Caché de datos
El motor de tabla DeltaLake y la función de tabla admiten la caché de datos, al igual que los almacenamientos S3, AzureBlobStorage y HDFS. Consulta "motor de tabla S3" para más detalles.