Description
ArrowStream est le format « mode flux » d’Apache Arrow. Il est conçu pour le traitement des flux en mémoire.
Exemple d’utilisation
forex, disponible dans le
ClickHouse SQL playground. Vous pouvez vous y connecter
à distance avec clickhouse-client, en utilisant l’hôte sql-clickhouse.clickhouse.com
et l’utilisateur demo (qui n’a pas de mot de passe). La table forex se trouve dans la
base de données forex ; nous la sélectionnons donc comme base de données par défaut :
forex stocke les taux de change. Nous pouvons examiner sa taille et
son taux de compression sur disque en interrogeant system.columns :
Query
Response
Arrow en “mode fichier”, qui
nécessite d’attendre le résultat complet avant de pouvoir le lire, ArrowStream est fourni sous la forme d’une
séquence de lots d’enregistrements qu’un consommateur peut lire de façon incrémentielle, au fur et à mesure de leur
arrivée. Il se prête donc particulièrement bien au streaming d’un résultat de la requête directement vers un
outil de visualisation ou d’analyse, sans devoir d’abord matérialiser l’ensemble du jeu de données.
Pour diffuser le résultat, envoyez la requête via l’interface HTTP de ClickHouse avec une
requête POST et lisez la réponse comme un flux Arrow. Nous désactivons la compression
de la sortie Arrow via le paramètre
output_format_arrow_compression_method
afin que les consommateurs puissent décoder directement les lots à mesure de leur réception.
La sortie ArrowStream est du binaire brut, donc au lieu de l’afficher dans le
terminal, nous la redirigeons vers un consommateur. Le flux est auto-descriptif (il transporte
son propre schéma), donc ici nous le redirigeons directement vers
clickhouse-local, qui lit les
lots entrants avec --input-format ArrowStream et permet de les interroger comme une table.
La table forex est volumineuse, nous limitons donc la requête distante avec un
prédicat WHERE et un LIMIT afin de garder cet exemple concis :
Response
RecordBatchReader produit chaque lot d’enregistrements dès qu’il est diffusé en streaming par le
serveur :
ArrowStream de ClickHouse vers une
visualisation en temps réel avec Perspective, consultez
l’article de blog
Visualisations en temps réel en streaming avec ClickHouse, Apache Arrow et Perspective.
Paramètres du format
ArrowStream utilise les mêmes paramètres de format que le format Arrow.