Passer au contenu principal

Puis-je interroger des champs individuels dans le type de données JSON ?

Pour accéder directement à un champ, comme {"user_id": 123}, vous pouvez utiliser la notation pointée :
SELECT doc.user_id as user_id FROM your_table;
Pour accéder directement aux champs d’un objet imbriqué, tels que {"address": { "city": "San Francisco", "state": "CA" }}, utilisez l’opérateur ^ :
SELECT doc.^address.city AS city FROM your_table;
Pour les agrégations, convertissez le champ au type approprié à l’aide de la fonction CAST ou de la syntaxe :: :
SELECT sum(doc.shipping.cost::Float32) AS total_shipping_cost FROM t1;
Pour en savoir plus sur l’utilisation de JSON, consultez notre guide Working with JSON.

Comment aplatir les documents MongoDB imbriqués dans ClickHouse ?

Par défaut, les documents MongoDB sont répliqués dans ClickHouse en type JSON, en conservant leur structure imbriquée. Plusieurs options s’offrent à vous pour aplatir ces données. Si vous souhaitez les aplatir en colonnes, vous pouvez utiliser des vues normales, des vues matérialisées ou un accès à l’exécution de la requête.
  1. Vues normales : utilisez des vues normales pour encapsuler la logique d’aplatissement.
  2. Vues matérialisées : pour les jeux de données de petite taille, vous pouvez utiliser des vues matérialisées actualisables avec le modificateur FINAL pour aplatir et dédupliquer périodiquement les données. Pour les jeux de données plus volumineux, nous recommandons d’utiliser des vues matérialisées incrémentielles sans FINAL afin d’aplatir les données en temps réel, puis de les dédupliquer à l’exécution de la requête.
  3. Accès à l’exécution de la requête : au lieu d’aplatir les données, utilisez la notation pointée pour accéder directement aux champs imbriqués dans les requêtes.
Pour des exemples détaillés, consultez notre guide Working with JSON.

Puis-je me connecter à des bases de données MongoDB qui n’ont pas d’adresse IP publique ou qui se trouvent sur des réseaux privés ?

Nous prenons en charge AWS PrivateLink pour se connecter à des bases de données MongoDB qui n’ont pas d’adresse IP publique ou qui se trouvent sur des réseaux privés. Azure Private Link et GCP Private Service Connect ne sont pas pris en charge pour le moment.

Que se passe-t-il si je supprime une base de données/table de ma base de données MongoDB ?

Lorsque vous supprimez une base de données/table de MongoDB, ClickPipes continue de fonctionner, mais la base de données/table supprimée cesse de répliquer les modifications. Les tables correspondantes dans ClickHouse sont conservées.

Comment le connecteur CDC de MongoDB gère-t-il les transactions ?

Chaque modification de document au sein d’une transaction est traitée individuellement et envoyée à ClickHouse. Les modifications sont appliquées dans l’ordre où elles apparaissent dans l’oplog ; seules les modifications validées sont répliquées vers ClickHouse. Si une transaction MongoDB est annulée, ces modifications n’apparaîtront pas dans le flux de modifications. Pour plus d’exemples, consultez notre guide Working with JSON.

Comment gérer l’erreur resume of change stream was not possible, as the resume point may no longer be in the oplog. ?

Cette erreur se produit généralement lorsque l’oplog est tronqué et que ClickPipe ne peut pas reprendre le change stream au point attendu. Pour résoudre ce problème, resynchronisez le ClickPipe. Pour éviter que ce problème ne se reproduise, nous vous recommandons d’augmenter la durée de rétention de l’oplog. Consultez les instructions pour MongoDB Atlas, MongoDB autogéré ou Amazon DocumentDB.

Comment la réplication est-elle gérée ?

Nous utilisons l’API native Change Streams de MongoDB pour suivre les modifications de la base de données. L’API Change Streams fournit un flux reprenable de modifications de la base de données en s’appuyant sur l’oplog (journal des opérations) de MongoDB. ClickPipe utilise les jetons de reprise de MongoDB pour suivre la position dans l’oplog et garantir que chaque modification est répliquée dans ClickHouse.

Quelle préférence de lecture utiliser ?

La préférence de lecture à utiliser dépend de votre cas d’usage. Si vous souhaitez réduire la charge sur votre nœud primaire, nous vous recommandons d’utiliser la préférence de lecture secondaryPreferred. Si vous souhaitez optimiser la latence d’ingestion, nous vous recommandons d’utiliser la préférence de lecture primaryPreferred. Pour plus de détails, consultez la documentation MongoDB.

Le ClickPipe pour MongoDB prend-il en charge les Sharded Clusters ?

Oui, le ClickPipe pour MongoDB prend en charge à la fois les Replica Sets et les Sharded Clusters.

MongoDB ClickPipe prend-il en charge Amazon DocumentDB ?

Oui, MongoDB ClickPipe prend en charge Amazon DocumentDB 5.0. Consultez le guide de configuration de la source pour Amazon DocumentDB pour en savoir plus. Nous prenons en charge PrivateLink pour les clusters MongoDB (et DocumentDB) sur AWS uniquement. Notez que, contrairement à une base de données relationnelle à nœud unique, le client MongoDB doit effectuer correctement la découverte du Replica Set pour pouvoir respecter le ReadPreference configuré. Cela implique de configurer PrivateLink avec tous les nœuds du cluster afin que le client MongoDB puisse établir correctement une connexion au Replica Set, ainsi que basculer vers un autre nœud si le nœud auquel il est connecté devient indisponible. Si vous préférez vous connecter à un seul nœud de votre cluster, vous pouvez contourner la découverte du Replica Set en spécifiant /?directConnection=true dans la chaîne de connexion lors de la configuration de ClickPipes. Dans ce cas, la configuration de PrivateLink sera similaire à celle d’une base de données relationnelle à nœud unique, et constitue l’option la plus simple pour bénéficier de PrivateLink. Pour une connexion au Replica Set, vous pouvez configurer PrivateLink pour MongoDB avec soit VPC Resource, soit VPC Endpoint Service. Si vous choisissez VPC Resource, vous devrez créer une configuration de ressource GROUP, ainsi qu’une configuration de ressource CHILD pour chaque nœud du cluster. Si vous choisissez VPC Endpoint Service, vous devrez créer un endpoint service distinct (et un NLB distinct) pour chaque nœud du cluster. Consultez la documentation AWS PrivateLink for ClickPipes pour plus de détails. Veuillez contacter ClickHouse Support pour obtenir de l’aide.
Dernière modification le 29 juin 2026