Esta es una de las formas más eficientes y sencillas de copiar datos desde Azure Blob Storage o Azure Data Lake Storage a ClickHouse. Con esta función de tabla, puede indicar a ClickHouse que se conecte directamente al almacenamiento de Azure y lea los datos bajo demanda.
Proporciona una interfaz similar a una tabla que le permite seleccionar, insertar y
filtrar datos directamente desde el origen. La función está muy optimizada y
admite muchos formatos de archivo de uso extendido, incluidos CSV, JSON, Parquet, Arrow,
TSV, ORC, Avro y más. Para ver la lista completa, consulte "Formatos de datos".
En esta sección, presentaremos una sencilla guía de inicio para transferir
datos desde Azure Blob Storage a ClickHouse, junto con consideraciones importantes
para usar esta función de forma eficaz. Para obtener más detalles y opciones avanzadas,
consulte la documentación oficial:
página de documentación de la función de tabla azureBlobStorage
Obtención de claves de acceso de Azure Blob Storage
Para permitir que ClickHouse acceda a Azure Blob Storage, necesitará una cadena de conexión con una clave de acceso.
-
En el Portal de Azure, vaya a su Cuenta de almacenamiento.
-
En el menú de la izquierda, seleccione Claves de acceso en la sección Seguridad + redes.

-
Elija key1 o key2 y haga clic en el botón Mostrar junto al campo Cadena de conexión.

-
Copie la cadena de conexión: la usará como parámetro en la función de tabla azureBlobStorage.
Consultar datos desde Azure Blob Storage
Abra la consola de consultas de ClickHouse que prefiera; puede ser la interfaz web de ClickHouse Cloud, el cliente ClickHouse CLI o cualquier otra herramienta que use para ejecutar consultas. Una vez que tenga listas tanto la cadena de conexión como la consola de consultas de ClickHouse, puede empezar a consultar datos directamente desde Azure Blob Storage.
En el siguiente ejemplo, consultamos todos los datos almacenados en archivos JSON ubicados en un contenedor llamado data-container:
SELECT * FROM azureBlobStorage(
'<YOUR CONNECTION STRING>',
'data-container',
'*.json',
'JSONEachRow');Si quieres copiar esos datos a una tabla local de ClickHouse (p. ej., my_table),
puedes usar una sentencia INSERT INTO ... SELECT:
INSERT INTO my_table
SELECT * FROM azureBlobStorage(
'<YOUR CONNECTION STRING>',
'data-container',
'*.json',
'JSONEachRow');Esto le permite incorporar de forma eficiente datos externos en ClickHouse sin necesidad de pasos intermedios de ETL.
Un ejemplo sencillo con el conjunto de datos Environmental Sensors
Como ejemplo, descargaremos un único archivo del conjunto de datos Environmental Sensors.
-
Descargue un archivo de ejemplo del conjunto de datos Environmental Sensors
-
En Portal de Azure, cree una nueva cuenta de almacenamiento si aún no tiene una.
-
Cree un nuevo contenedor en su cuenta de almacenamiento. En este ejemplo, lo llamamos sensors. Puede omitir este paso si usa un contenedor existente.
-
Cargue en el contenedor el archivo
2019-06_bmp180.csv.zstque descargó anteriormente. -
Siga los pasos descritos anteriormente para obtener la cadena de conexión de Azure Blob Storage.
Ahora que todo está configurado, puede consultar los datos directamente desde Azure Blob Storage:
SELECT *
FROM azureBlobStorage(
'<YOUR CONNECTION STRING>',
'sensors',
'2019-06_bmp180.csv.zst',
'CSVWithNames')
LIMIT 10
SETTINGS format_csv_delimiter = ';'- Para cargar los datos en una tabla, cree una versión simplificada del
esquema utilizado en el dataset original:
CREATE TABLE sensors ( sensor_id UInt16, lat Float32, lon Float32, timestamp DateTime, temperature Float32 ) ENGINE = MergeTree ORDER BY (timestamp, sensor_id);
- Ahora inserte los datos de Azure Blob Storage en la tabla sensors:
INSERT INTO sensors SELECT sensor_id, lat, lon, timestamp, temperature FROM azureBlobStorage( '<YOUR CONNECTION STRING>', 'sensors', '2019-06_bmp180.csv.zst', 'CSVWithNames') SETTINGS format_csv_delimiter = ';'
La tabla sensors ya contiene los datos del archivo 2019-06_bmp180.csv.zst
almacenado en Azure Blob Storage.
Recursos adicionales
Esta es solo una introducción básica al uso de la función azureBlobStorage. Para conocer opciones más avanzadas y detalles de configuración, consulte la documentación oficial: