Créer une table
Paramètres du moteur
endpoint— URL du point de terminaison AzureBlobStorage avec conteneur & préfixe. Peut éventuellement conteniraccount_namesi la méthode d’authentification utilisée l’exige. (http://azurite1:{port}/[account_name]{container_name}/{data_prefix}) Sinon, ces paramètres peuvent être fournis séparément viastorage_account_url,account_name&container. Pour spécifier le préfixe, il faut utiliserendpoint.endpoint_contains_account_name- Ce flag permet d’indiquer siendpointcontientaccount_name, car cela n’est nécessaire que pour certaines méthodes d’authentification. (Par défaut : true)connection_string|storage_account_url—connection_stringinclut le nom du compte & la clé (Créer une chaîne de connexion) ou vous pouvez aussi fournir ici l’URL du compte de stockage, ainsi que le nom du compte & la clé du compte comme paramètres distincts (voir les paramètresaccount_name&account_key)container_name- Nom du conteneurblobpath- chemin du fichier. Prend en charge les caractères génériques suivants en modereadonly:*,**,?,{abc,def}et{N..M}oùN,M— nombres,'abc','def'— chaînes.account_name- sistorage_account_urlest utilisé, le nom du compte peut être indiqué iciaccount_key- sistorage_account_urlest utilisé, la clé du compte peut être indiquée iciformat— Le format du fichier.compression— Valeurs prises en charge :none,gzip/gz,brotli/br,xz/LZMA,zstd/zst. Par défaut, la compression est détectée automatiquement à partir de l’extension du fichier. (équivaut à définirauto).partition_strategy– Options :wildcardouhive.wildcardnécessite un{_partition_id}dans le chemin, qui est remplacé par la clé de partition.hiven’autorise pas les caractères génériques, suppose que le chemin correspond à la racine de la table et génère des répertoires partitionnés au format Hive, avec des Snowflake IDs comme noms de fichiers et le format de fichier comme extension. La valeur par défaut est définie par le paramètrefile_like_engine_default_partition_strategy(wildcardavec des paramètrescompatibilityantérieurs à26.6,hivesinon).partition_columns_in_data_file- Utilisé uniquement avec la stratégie de partitionnementhive. Indique à ClickHouse s’il doit s’attendre à ce que les colonnes de partition soient écrites dans le fichier de données. La valeur par défaut estfalse.extra_credentials- Utilisezclient_idettenant_idpour l’authentification. Siextra_credentialsest fourni, il est prioritaire suraccount_nameetaccount_key.
http://localhost:10000 par http://azurite1:10000 dans les commandes ci-dessous, où nous supposons qu’Azurite est disponible sur l’hôte azurite1.
Colonnes virtuelles
_path— Chemin du fichier. Type :LowCardinality(String)._file— Nom du fichier. Type :LowCardinality(String)._size— Taille du fichier en octets. Type :Nullable(UInt64). Si la taille est inconnue, la valeur estNULL._time— Date et heure de dernière modification du fichier. Type :Nullable(DateTime). Si l’heure est inconnue, la valeur estNULL.
Authentification
Managed Identity- Peut être utilisée en fournissant unendpoint, uneconnection_stringou unstorage_account_url.SAS Token- Peut être utilisé en fournissant unendpoint, uneconnection_stringou unstorage_account_url. Il est identifié par la présence du caractère « ? » dans l’URL. Voir azureBlobStorage pour des exemples.Workload Identity- Peut être utilisée en fournissant unendpointou unstorage_account_url. Si le paramètreuse_workload_identityest défini dans la config, workload identity est utilisée pour l’authentification.
Cache de données
Azure prend en charge la mise en cache des données sur disque local.
Consultez les options de configuration et l’utilisation du cache du système de fichiers dans cette section.
La mise en cache repose sur le chemin et l’ETag de l’objet de stockage, de sorte que ClickHouse ne lit pas une version périmée du cache.
Pour activer la mise en cache, utilisez les paramètres filesystem_cache_name = '<name>' et enable_filesystem_cache = 1.
- ajoutez la section suivante dans le fichier de configuration de ClickHouse :
- réutiliser la configuration du cache (et donc son stockage) depuis la section
storage_configurationde ClickHouse, décrite ici
PARTITION BY
PARTITION BY — Facultatif. Dans la plupart des cas, vous n’avez pas besoin de clé de partition et, lorsqu’elle est nécessaire, elle n’a généralement pas besoin d’être plus fine qu’un partitionnement mensuel. Le partitionnement n’accélère pas les requêtes (contrairement à l’expression ORDER BY). N’utilisez jamais un partitionnement trop fin. Ne partitionnez pas vos données par identifiant ou nom de client (utilisez plutôt l’identifiant ou le nom du client comme première colonne de l’expression ORDER BY).
Pour un partitionnement par mois, utilisez l’expression toYYYYMM(date_column), où date_column est une colonne contenant une date de type Date. Les noms de partition sont ici au format "YYYYMM".
Stratégie de partitionnement
wildcard : remplace le caractère générique {_partition_id} dans le chemin du fichier par la clé de partition réelle. La lecture n’est pas prise en charge. Cette stratégie est sélectionnée par défaut uniquement avec des réglages compatibility antérieurs à 26.6 ; sinon, la valeur par défaut est hive (voir le paramètre file_like_engine_default_partition_strategy).
hive applique un partitionnement de style Hive en lecture comme en écriture. La lecture est implémentée à l’aide d’un motif glob récursif. L’écriture génère des fichiers au format suivant : <prefix>/<key1=val1/key2=val2...>/<snowflakeid>.<toLower(file_format)>.
Remarque : lors de l’utilisation de la stratégie de partitionnement hive, le paramètre use_hive_partitioning n’a aucun effet.
Exemple de stratégie de partitionnement hive :