Prérequis
Création de votre premier ClickPipe
- Accédez à la SQL Console de votre service ClickHouse Cloud.
- Sélectionnez le bouton
Data Sourcesdans le menu de gauche, puis cliquez sur “Set up a ClickPipe”
- Sélectionnez votre source de données.
- Remplissez le formulaire en indiquant un nom pour votre ClickPipe, une description (facultative), votre rôle IAM ou vos identifiants, ainsi que les autres détails de connexion.
-
Sélectionnez le stream Kinesis, le Data format et l’offset de départ. Pour
Protobuf, téléversez un fichier.protoou unFileDescriptorSetsérialisé (768 Kio maximum). Aucun schema registry n’est requis. L’UI affiche un échantillon de données provenant du stream sélectionné. L’option Use Kinesis Enhanced Fan-Out est activée par défaut. Consultez la documentation Amazon Kinesis pour plus de détails.
- À l’étape suivante, vous pouvez choisir d’ingérer les données dans une nouvelle table ClickHouse ou de réutiliser une table existante. Suivez les instructions affichées à l’écran pour modifier le nom de la table, le schéma et les paramètres. Un aperçu en temps réel de vos modifications s’affiche dans l’exemple de table en haut de l’écran.
- Vous pouvez aussi choisir d’ingérer vos données dans une table ClickHouse existante. Dans ce cas, l’UI vous permettra de mapper les champs de la source vers les champs ClickHouse de la table de destination sélectionnée.
- Enfin, vous pouvez configurer les permissions de l’utilisateur interne ClickPipes.
Full access: accès complet au cluster. Cela peut être utile si vous utilisez une vue matérialisée ou un Dictionary avec la table de destination.Only destination table: avec les permissionsINSERTsur la seule table de destination.
- En cliquant sur “Complete Setup”, le système enregistrera votre ClickPipe et vous pourrez le voir apparaître dans le tableau récapitulatif.
- Félicitations ! Vous avez configuré avec succès votre premier ClickPipe. S’il s’agit d’un ClickPipe de streaming, il s’exécutera en continu et ingérera les données en temps réel depuis votre source de données distante. Sinon, il ingérera le batch puis se terminera.
Formats de données pris en charge
Compression
- gzip
- zstd
- lz4
- snappy (format encapsulé en trames)
La détection automatique est fiable pour les formats textuels comme JSON et CSV, car les caractères ASCII imprimables n’entrent jamais en conflit avec les octets magiques de compression.
Types de données pris en charge
Prise en charge des types standard
- Types numériques de base - [U]Int8/16/32/64, Float32/64 et BFloat16
- Types d’entiers de grande taille - [U]Int128/256
- Types Decimal
- Boolean
- String
- FixedString
- Date, Date32
- DateTime, DateTime64 (fuseaux horaires UTC uniquement)
- Enum8/Enum16
- UUID
- IPv4
- IPv6
- tous les types LowCardinality de ClickHouse
- Map avec des clés et des valeurs utilisant l’un des types ci-dessus (y compris les Nullable)
- Tuple et Array avec des éléments utilisant l’un des types ci-dessus (y compris les Nullable, profondeur d’un seul niveau uniquement)
- types SimpleAggregateFunction (pour les destinations AggregatingMergeTree ou SummingMergeTree)
Prise en charge des types Variant
Variant(String, Int64, DateTime)) pour n’importe quel champ JSON
du flux de données source. En raison de la façon dont ClickPipes détermine le sous-type de variant approprié, un seul type entier ou DateTime
peut être utilisé dans la définition de Variant. Par exemple, Variant(Int64, UInt32) n’est pas pris en charge.
Prise en charge du type JSON
Colonnes virtuelles Kinesis
Add Column.
Le champ _raw_message peut être utilisé lorsque seul l’enregistrement JSON Kinesis complet est nécessaire (par exemple, en utilisant les fonctions ClickHouse
JsonExtract* pour alimenter une vue matérialisée en aval). Pour ce type de pipes, la suppression de toutes les colonnes « non virtuelles » peut améliorer les performances de ClickPipes.
Limitations
- DEFAULT n’est pas pris en charge.
- La taille des messages individuels est limitée par défaut à 16MB (non compressés) avec la plus petite taille de réplique (XS), et à 32MB (non compressés) avec des répliques plus grandes. Les messages qui dépassent cette limite seront rejetés avec une erreur. Si vous avez besoin de messages plus volumineux, veuillez contacter l’assistance.
Performances
Traitement par lots
- La taille du lot a atteint la taille maximale (100 000 lignes ou 32 Mo par 1 Go de mémoire de réplique)
- Le lot est resté ouvert pendant la durée maximale (5 secondes)