Descripción
Apache Arrow incluye dos formatos integrados de almacenamiento columnar. ClickHouse admite operaciones de lectura y escritura en estos formatos.Arrow es el formato de Apache Arrow en “modo de archivo”, diseñado para el acceso aleatorio en memoria.
Correspondencia entre tipos de datos
La siguiente tabla muestra los tipos de datos admitidos y cómo se corresponden con los tipos de datos de ClickHouse en las consultasINSERT y SELECT.
Los tipos Array pueden anidarse y pueden tener como argumento un valor de tipo
Nullable. Los tipos Tuple y Map también pueden anidarse.
El tipo DICTIONARY es compatible con las consultas INSERT, y para las consultas SELECT existe la configuración output_format_arrow_low_cardinality_as_dictionary, que permite generar el tipo LowCardinality como un tipo DICTIONARY. Tenga en cuenta que puede haber valores no utilizados en el diccionario LowCardinality, lo que puede dar lugar a valores no utilizados en el DICTIONARY de Arrow en la salida.
Tipos de datos de Arrow no compatibles:
JSONENUM.
Ejemplo de uso
En el ejemplo siguiente, usamos el conjunto de datosforex disponible en el
Playground de SQL de ClickHouse.
Selección de datos
Seleccionamos un día de cotizaciones deEUR/USD del Playground de SQL y lo guardamos
en un archivo local forex_eurusd.arrow. Consultamos el Playground de SQL a través de la interfaz HTTP,
donde el host es sql-clickhouse.clickhouse.com y el usuario es
demo (que no tiene contraseña):
Leer de nuevo el archivo
Ahora podemos volver a leer el archivo Arrow local conclickhouse-local usando la
función de tabla file. El archivo es
autodescriptivo, por lo que el formato Arrow infiere el esquema automáticamente:
Response
Insertar datos
Para cargar un archivo Arrow en una tabla de ClickHouse, páselo por una tubería aclickhouse-client
con FORMAT Arrow: