Ce moteur fournit une intégration avec des tables Delta Lake existantes dans les stockages S3, GCP et Azure, et prend en charge aussi bien la lecture que l’écriture (à partir de la version 25.10).
Créer une table DeltaLake
Pour créer une table DeltaLake, celle-ci doit déjà exister dans un stockage S3, GCP ou Azure. Les commandes ci-dessous n’acceptent pas de paramètres DDL permettant de créer une nouvelle table.
SyntaxeCREATE TABLE table_name
ENGINE = DeltaLake(url, [aws_access_key_id, aws_secret_access_key,] [extra_credentials])
Paramètres du moteur
url — URL du bucket avec le chemin vers la table Delta Lake existante.
aws_access_key_id, aws_secret_access_key - Informations d’identification à long terme pour l’utilisateur du compte AWS. Vous pouvez les utiliser pour authentifier vos requêtes. Ce paramètre est facultatif. Si aucune information d’identification n’est spécifiée, celles du fichier de configuration sont utilisées.
extra_credentials - Facultatif. Utilisé pour transmettre un role_arn pour l’accès basé sur les rôles dans ClickHouse Cloud. Consultez Secure S3 pour les étapes de configuration.
Les paramètres du moteur peuvent être spécifiés à l’aide de collections nommées.ExempleCREATE TABLE deltalake
ENGINE = DeltaLake('http://mars-doc-test.s3.amazonaws.com/clickhouse-bucket-3/test_table/', 'ABC123', 'Abc+123')
Avec des collections nommées :<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')
Syntaxe-- Utilisation de l'URL HTTPS (recommandée)
CREATE TABLE table_name
ENGINE = DeltaLake('https://storage.googleapis.com/<bucket>/<path>/', '<access_key_id>', '<secret_access_key>')
URI gsutil non prise en chargeLes URI gsutil telles que gs://clickhouse-docs-example-bucket ne sont pas prises en charge ; veuillez utiliser une URL commençant par https://storage.googleapis.com
Arguments
url — URL du bucket GCS pointant vers la table Delta Lake. Doit utiliser le format https://storage.googleapis.com/<bucket>/<path>/
(le endpoint de l’API XML GCS), ou gs://<bucket>/<path>/, qui est converti automatiquement.
access_key_id — Clé d’accès GCS. Créez-la via Google Cloud Console → Cloud Storage → Settings → Interoperability.
secret_access_key — Secret GCS.
Collections nomméesVous pouvez également utiliser des collections nommées.
Par exemple :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>')
SyntaxeCREATE TABLE table_name
ENGINE = DeltaLake(connection_string|storage_account_url, container_name, blobpath, [account_name, account_key, format, compression])
Arguments
connection_string — chaîne de connexion Azure
storage_account_url — URL du compte de stockage Azure (par exemple, https://account.blob.core.windows.net)
container_name — nom du conteneur Azure
blobpath — chemin vers la table Delta Lake dans le conteneur
account_name — nom du compte de stockage Azure
account_key — clé du compte de stockage Azure
Écrire des données à l’aide d’une table DeltaLake
Une fois la table créée avec le moteur de table DeltaLake, vous pouvez y insérer des données avec :
SET allow_experimental_delta_lake_writes = 1;
INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);
L’écriture avec le moteur de table est prise en charge uniquement via delta kernel.
Les écritures vers Azure ne sont pas encore prises en charge, mais elles fonctionnent avec S3 et GCS.
Le moteur de table et la fonction de table DeltaLake prennent en charge le cache de données, à l’instar des stockages S3, AzureBlobStorage et HDFS. Voir “moteur de table S3” pour plus de détails.