Skip to main content

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êtes INSERT 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 :
  • JSON
  • ENUM.
Les types de données des colonnes de la table ClickHouse n’ont pas besoin de correspondre aux champs de données Arrow correspondants. Lors de l’insertion de données, ClickHouse interprète les types de données conformément au tableau ci-dessus, puis convertit les données dans le type de données défini pour la colonne de la table ClickHouse.

Exemple d’utilisation

Dans l’exemple ci-dessous, nous utilisons le jeu de données forex disponible dans le ClickHouse SQL playground.

Sélection des données

Nous sélectionnons une journée de taux de change EUR/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 avec clickhouse-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 vers clickhouse-client avec FORMAT Arrow :

Paramètres du format