CREATE TABLE
Parámetros del motor
endpoint— URL del endpoint de AzureBlobStorage con contenedor y prefijo. Opcionalmente, puede incluir account_name si el método de autenticación utilizado lo requiere. (http://azurite1:{port}/[account_name]{container_name}/{data_prefix}) o estos parámetros pueden proporcionarse por separado mediante storage_account_url, account_name y container. Para especificar el prefijo, se debe usar endpoint.endpoint_contains_account_name- Esta marca se usa para indicar si endpoint incluye account_name, ya que solo es necesario para ciertos métodos de autenticación. (Valor predeterminado: true)connection_string|storage_account_url— connection_string incluye el nombre y la clave de la cuenta (Crear una connection string) o también puede proporcionar aquí la URL de la cuenta de almacenamiento, así como el nombre y la clave de la cuenta como parámetros independientes (consulte los parámetros account_name y account_key)container_name- Nombre del contenedorblobpath- ruta del archivo. Admite los siguientes comodines en modo readonly:*,**,?,{abc,def}y{N..M}, dondeN,M— números,'abc','def'— cadenas.account_name- si se usa storage_account_url, aquí puede especificarse el nombre de la cuentaaccount_key- si se usa storage_account_url, aquí puede especificarse la clave de la cuentaformat— El formato del archivo.compression— Valores admitidos:none,gzip/gz,brotli/br,xz/LZMA,zstd/zst. De forma predeterminada, detectará automáticamente la compresión según la extensión del archivo. (equivale a establecerauto).partition_strategy– Opciones:WILDCARDoHIVE.WILDCARDrequiere{_partition_id}en la ruta, que se sustituye por la clave de partición.HIVEno permite comodines, asume que la ruta es la raíz de la tabla y genera directorios particionados con estilo Hive, con ID de Snowflake como nombres de archivo y el formato de archivo como extensión. El valor predeterminado esWILDCARDpartition_columns_in_data_file- Solo se usa con la estrategia de particiónHIVE. Indica a ClickHouse si debe esperar que las columnas de partición se escriban en el archivo de datos. El valor predeterminado esfalse.extra_credentials- Useclient_idytenant_idpara la autenticación. Si se proporcionan extra_credentials, tienen prioridad sobreaccount_nameyaccount_key.
http://localhost:10000 por http://azurite1:10000 en los comandos siguientes, donde asumimos que Azurite está disponible en el host azurite1.
Columnas virtuales
_path— Ruta del archivo. Tipo:LowCardinality(String)._file— Nombre del archivo. Tipo:LowCardinality(String)._size— Tamaño del archivo en bytes. Tipo:Nullable(UInt64). Si se desconoce el tamaño, el valor esNULL._time— Hora de la última modificación del archivo. Tipo:Nullable(DateTime). Si se desconoce la hora, el valor esNULL.
Autenticación
Managed Identity- Se puede usar proporcionando unendpoint,connection_stringostorage_account_url.SAS Token- Se puede usar proporcionando unendpoint,connection_stringostorage_account_url. Se identifica por la presencia de?en la URL. Consulta azureBlobStorage para ver ejemplos.Workload Identity- Se puede usar proporcionando unendpointostorage_account_url. Si el parámetrouse_workload_identityestá establecido en la configuración, se usa workload identity para la autenticación.
Caché de datos
Azure admite el almacenamiento en caché de datos en disco local.
Consulte las opciones de configuración y el uso de la caché del sistema de archivos en esta sección.
La caché se basa en la ruta y el ETag del objeto de almacenamiento, por lo que ClickHouse no leerá una versión obsoleta de la caché.
Para habilitar la caché, use la configuración filesystem_cache_name = '<name>' y enable_filesystem_cache = 1.
- añade la siguiente sección al archivo de configuración de ClickHouse:
- reutilizar la configuración de la caché (y, por lo tanto, el almacenamiento en caché) de la sección
storage_configurationde ClickHouse, descrita aquí
PARTITION BY
PARTITION BY — Opcional. En la mayoría de los casos no necesita una clave de partición y, si la necesita, por lo general no hace falta que sea más granular que por mes. El particionado no acelera las consultas (a diferencia de la expresión ORDER BY). Nunca debe usar un particionado demasiado granular. No particione sus datos por identificadores o nombres de clientes (en su lugar, haga que el identificador o nombre del cliente sea la primera columna de la expresión ORDER BY).
Para particionar por mes, use la expresión toYYYYMM(date_column), donde date_column es una columna de tipo Date. Los nombres de las particiones aquí tienen el formato "YYYYMM".
Estrategia de partición
WILDCARD (por defecto): sustituye el comodín {_partition_id} en la ruta del archivo por la clave de partición real. No admite lectura.
HIVE implementa el particionamiento de estilo Hive para lectura y escritura. La lectura se implementa mediante un patrón glob recursivo. La escritura genera archivos con el siguiente formato: <prefix>/<key1=val1/key2=val2...>/<snowflakeid>.<toLower(file_format)>.
Nota: al usar la estrategia de partición HIVE, la configuración use_hive_partitioning no tiene efecto.
Ejemplo de estrategia de partición HIVE: