Description
Apache Arrow propose deux formats de stockage en colonnes intégrés. ClickHouse prend en charge les opérations de lecture et d’écriture pour ces formats.Arrow est le format « mode fichier » d’Apache Arrow, conçu pour un accès aléatoire en mémoire.
Correspondance des types de données
Le tableau ci-dessous présente les types de données pris en charge et leur correspondance avec les types de données de ClickHouse dans les requêtesINSERT et SELECT.
Les
Array peuvent être imbriqués et accepter comme argument une valeur de type Nullable. Les types Tuple et Map peuvent également être imbriqués.
Le type DICTIONARY est pris en charge pour les requêtes INSERT et, pour les requêtes SELECT, le paramètre output_format_arrow_low_cardinality_as_dictionary permet de restituer le type LowCardinality sous forme de type DICTIONARY. Notez qu’il peut y avoir des valeurs inutilisées dans le dictionnaire LowCardinality, ce qui peut se traduire par des valeurs inutilisées dans le DICTIONARY Arrow en sortie.
Types de données Arrow non pris en charge :
JSONENUM.
Exemple d’utilisation
Dans l’exemple ci-dessous, nous utilisons le jeu de donnéesforex disponible dans le
ClickHouse SQL playground.
Sélection des données
Nous sélectionnons une journée de taux de changeEUR/USD dans le Playground et l’enregistrons
dans un fichier local forex_eurusd.arrow. Nous interrogeons le Playground via l’interface
HTTP, où le host est sql-clickhouse.clickhouse.com et l’utilisateur est
demo (qui n’a pas de mot de passe) :
Lecture du fichier
Nous pouvons maintenant relire le fichier Arrow local avecclickhouse-local à l’aide de la
fonction de table file. Le fichier est
auto-descriptif, donc le format Arrow infère automatiquement le schéma :
Response
Insertion de données
Pour charger un fichier Arrow dans une table ClickHouse, redirigez-le versclickhouse-client
avec FORMAT Arrow :