Introduction
- PUSH envoyer des données vers ClickHouse à l’aide d’un outil ou service ETL/ELT tiers
- PULL extraire des données depuis Redshift à l’aide de ClickHouse JDBC Bridge
- PIVOT utiliser le stockage objet S3 selon une logique « décharger puis charger »
Nous avons utilisé Redshift comme source de données dans ce tutoriel. Cependant, les approches de migration présentées ici ne sont pas exclusives à Redshift, et des étapes similaires peuvent être appliquées à toute source de données compatible.
Push des données de Redshift vers ClickHouse
Avantages
- Il permet de tirer parti du catalogue existant de connecteurs du logiciel ETL/ELT.
- Fonctionnalités intégrées pour maintenir les données synchronisées (logique d’ajout, de remplacement et incrémentielle).
- Prend en charge des scénarios de transformation des données (par exemple, consultez notre guide d’intégration de dbt).
Inconvénients
- Vous devez mettre en place et maintenir une infrastructure ETL/ELT.
- Cela introduit un composant tiers dans l’architecture, qui peut devenir un goulot d’étranglement en matière de scalabilité.
Extraire des données de Redshift vers ClickHouse
INSERT INTO ... SELECT :
Avantages
- S’applique à tous les outils compatibles JDBC
- Solution élégante pour interroger plusieurs sources de données externes depuis ClickHouse
Inconvénients
- Nécessite une instance ClickHouse JDBC Bridge, qui peut devenir un goulot d’étranglement pour la montée en charge
Même si Redshift est basé sur PostgreSQL, il n’est pas possible d’utiliser la fonction de table PostgreSQL ni le moteur de table ClickHouse, car ClickHouse exige PostgreSQL version 9 ou ultérieure, tandis que l’API Redshift repose sur une version antérieure (8.x).
Tutoriel
Déployer ClickHouse JDBC Bridge
Déployez ClickHouse JDBC Bridge. Pour plus de détails, consultez notre guide utilisateur sur JDBC pour les sources de données externesSi vous utilisez ClickHouse Cloud, vous devrez exécuter ClickHouse JDBC Bridge dans un environnement distinct et vous connecter à ClickHouse Cloud à l’aide de la fonction remoteSecure
Configurer votre source de données Redshift
Configurez votre source de données Redshift pour ClickHouse JDBC Bridge. Par exemple,/etc/clickhouse-jdbc-bridge/config/datasources/redshift.json Interroger votre instance Redshift depuis ClickHouse
Une fois ClickHouse JDBC Bridge déployé et en cours d’exécution, vous pouvez commencer à interroger votre instance Redshift depuis ClickHouse.Importer des données de Redshift vers ClickHouse
Dans la suite, nous montrons comment importer des données à l’aide d’une instructionINSERT INTO ... SELECTPivot des données de Redshift vers ClickHouse à l’aide de S3
Avantages
- Redshift et ClickHouse offrent tous deux de puissantes fonctionnalités d’intégration avec S3.
- S’appuie sur des fonctionnalités existantes, comme la commande Redshift
UNLOADet la fonction de table / le moteur de table S3 de ClickHouse. - Passe facilement à l’échelle grâce aux lectures parallèles et aux capacités de haut débit de ClickHouse vers et depuis S3.
- Permet d’exploiter des formats sophistiqués et compressés comme Apache Parquet.
Inconvénients
- Deux étapes du processus (déchargement depuis Redshift, puis chargement dans ClickHouse).
Tutoriel
Créer la table dans ClickHouse
Créez la table dans ClickHouse :CREATE TABLE ... EMPTY AS SELECT :Charger les fichiers S3 dans ClickHouse
Chargez les fichiers S3 dans ClickHouse à l’aide d’une instructionINSERT INTO ... SELECT :Cet exemple utilise CSV comme format pivot. Toutefois, pour les workloads de production, nous recommandons Apache Parquet comme meilleure option pour les migrations volumineuses, car ce format intègre la compression et peut réduire les coûts de stockage tout en diminuant les temps de transfert. (Par défaut, chaque row group est compressé avec SNAPPY.) ClickHouse exploite également l’organisation en colonnes de Parquet pour accélérer l’ingestion des données.