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.
Syntaxe
CREATE 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 unrole_arnpour 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.
Exemple
CREATE 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>')Arguments
url— URL du bucket GCS pointant vers la table Delta Lake. Doit utiliser le formathttps://storage.googleapis.com/<bucket>/<path>/(le point de terminaison de l'API XML GCS), ougs://<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ées
Vous 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>')Syntaxe
CREATE 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 Azurestorage_account_url— URL du compte de stockage Azure (par exemple, https://account.blob.core.windows.net)container_name— nom du conteneur Azureblobpath— chemin vers la table Delta Lake dans le conteneuraccount_name— nom du compte de stockage Azureaccount_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_delta_lake_writes = 1;
INSERT INTO deltalake(id, firstname, lastname, gender, age)
VALUES (1, 'John', 'Smith', 'M', 32);Les écritures Delta Lake sont une fonctionnalité Beta désactivée par défaut et doivent être activées avec SET allow_delta_lake_writes = 1; (disponible à partir de la version 26.7 ; sur les versions antérieures, utilisez SET allow_experimental_delta_lake_writes = 1;).
Cache de données
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.