mardi, novembre 28, 2023

Supprimer les barrières financières pour la capture de données modifiées en temps réel (CDC)


Aujourd’hui, je suis ravi de partager quelques mises à jour de produits sur lesquelles nous avons travaillé et liées à la capture des données modifiées (CDC) en temps réel, y compris un accès anticipé aux modèles populaires et aux plates-formes CDC tierces. Dans cet article, nous présenterons la nouvelle fonctionnalité, quelques exemples pour aider les équipes chargées des données à démarrer et pourquoi le CDC en temps réel est devenu beaucoup plus accessible.

Qu’est-ce que le CDC et pourquoi est-il utile ?

Tout d’abord, un bref aperçu de ce que CDC c’est et pourquoi nous sommes de si grands fans. Étant donné que toutes les bases de données nécessitent des compromis techniques, il est courant de déplacer les données d’une source vers une destination en fonction de la manière dont elles seront utilisées. D’une manière générale, il existe trois manières de base de déplacer des données d’un point A à un point B :

  1. Un dump complet périodique, c’est-à-dire copier toutes les données de la source A vers la destination B, en remplaçant complètement le dump précédent à chaque fois.
  2. Les mises à jour périodiques par lots, c’est-à-dire toutes les 15 minutes, exécutent une requête sur A pour voir quels enregistrements ont changé depuis la dernière exécution (peut-être en utilisant un indicateur modifié, une heure mise à jour, etc.) et les insèrent par lots dans votre destination.
  3. Les mises à jour incrémentielles (alias CDC) – à mesure que les enregistrements changent dans A, émettent un flux de modifications qui peuvent être appliquées efficacement en aval dans B.

CDC exploite le streaming afin de suivre et de transporter les modifications d’un système à un autre. Cette méthode offre quelques énormes avantages par rapport aux mises à jour par lots. Premièrement, CDC permet théoriquement aux entreprises d’analyser et de réagir aux données en temps réel, au fur et à mesure de leur génération. Il fonctionne avec les systèmes de streaming existants tels qu’Apache Kafka, Amazon Kinesis et Azure Events Hubs, ce qui facilite plus que jamais la création d’un pipeline de données en temps réel.

Un anti-modèle commun : CDC en temps réel sur un entrepôt de données cloud

L’un des modèles les plus courants pour CDC consiste à déplacer des données d’une base de données transactionnelle ou opérationnelle vers un entrepôt de données cloud (CDW). Cette méthode présente quelques inconvénients.

Premièrement, la plupart des CDW ne prennent pas en charge les mises à jour sur place, ce qui signifie que lorsque de nouvelles données arrivent, ils doivent allouer et écrire une copie entièrement nouvelle de chaque micropartition via le FUSIONNER commande, qui capture également les insertions et les suppressions. Le résultat ? Il est soit plus coûteux (écritures volumineuses et fréquentes), soit lent (écritures moins fréquentes) d’utiliser un CDW comme destination CDC. Les entrepôts de données ont été construits pour les tâches par lots, nous ne devrions donc pas en être surpris. Mais alors, que doivent faire les utilisateurs lorsque des cas d’utilisation en temps réel se présentent ? Madison Schott d’Airbyte écrit, « J’avais besoin de données semi-temps réel dans Snowflake. Après avoir augmenté les synchronisations de données dans Airbyte à une fois toutes les 15 minutes, les coûts de Snowflake ont grimpé en flèche. Étant donné que les données étaient ingérées toutes les 15 minutes, l’entrepôt de données fonctionnait presque toujours. Si vos coûts explosent avec une fréquence de synchronisation de 15 minutes, vous ne pouvez tout simplement pas répondre aux données récentes, encore moins aux données en temps réel.

Maintes et maintes fois, des entreprises de divers secteurs ont augmenté leurs revenus, augmenté leur productivité et réduit leurs coûts en passant de l’analyse par lots à l’analyse en temps réel. Dimona, une entreprise de vêtements leader en Amérique latine fondée il y a 55 ans au Brésil, a déclaré ceci à propos de sa base de données de gestion des stocks : « À mesure que nous mettions en ligne davantage d’entrepôts et de magasins, la base de données a commencé à s’enliser du côté analytique. Les requêtes qui prenaient auparavant des dizaines de secondes ont commencé à prendre plus d’une minute ou à expirer complètement…. grâce au service de migration de base de données (DMS) d’Amazon, nous répliquons désormais en continu les données d’Aurora vers Rockset, qui effectue tout le traitement, les agrégations et les calculs des données. .» Les bases de données en temps réel ne sont pas seulement optimisées pour le CDC en temps réel : elles le rendent accessible et efficace pour les organisations de toute taille. Contrairement aux entrepôts de données cloud, Rockset est spécialement conçu pour ingérer de grandes quantités de données en quelques secondes et exécuter des requêtes en moins d’une seconde sur ces données.

CDC pour l’analyse en temps réel

Chez Rockset, nous avons vu l’adoption du CDC monter en flèche. Les équipes disposent souvent de pipelines qui génèrent des deltas CDC et ont besoin d’un système capable de gérer l’ingestion en temps réel de ces deltas pour permettre des charges de travail avec une faible latence de bout en bout et une évolutivité élevée des requêtes. Rockset a été conçu pour ce cas d’utilisation précis. Nous avons déjà créé des connecteurs de données basés sur CDC pour de nombreuses sources courantes : DynamoDB, MongoDB, et plus. Avec la nouvelle prise en charge CDC que nous lançons aujourd’hui, Rockset permet de manière transparente un CDC en temps réel provenant de dizaines de sources populaires dans plusieurs formats CDC standard de l’industrie.

Pour un peu de contexte, lorsque vous ingérez des données dans Rockset, vous pouvez spécifier une requête SQL, appelée ingérer la transformation, qui est évalué sur vos données sources. Le résultat de cette requête est ce qui est conservé dans votre collection sous-jacente (l’équivalent d’une table SQL). Cela vous donne la puissance de SQL pour tout accomplir, depuis le renommage/suppression/combinaison de champs jusqu’au filtrage des lignes en fonction de conditions complexes. Vous pouvez même effectuer des agrégations au moment de l’écriture (cumuls) et configurez des fonctionnalités avancées telles que le clustering de données sur votre collection.

Les données CDC se présentent souvent dans des objets profondément imbriqués avec des schémas complexes et de nombreuses données qui ne sont pas requises par la destination. Avec une transformation d’ingestion, vous pouvez facilement restructurer les documents entrants, nettoyer les noms et mapper les champs source aux champs spéciaux de Rockset. Tout cela se déroule de manière transparente dans le cadre de la plateforme d’ingestion gérée et en temps réel de Rockset. En revanche, d’autres systèmes nécessitent des tâches/pipelines ETL intermédiaires complexes pour réaliser une manipulation de données similaire, ce qui ajoute de la complexité opérationnelle, de la latence des données et des coûts.

Vous pouvez ingérer des données CDC à partir de pratiquement n’importe quelle source grâce à la puissance et à la flexibilité des transformations d’ingestion de Rockset. Pour ce faire, vous devez remplir quelques champs spéciaux.

_identifiant

Il s’agit de l’identifiant unique d’un document dans Rockset. Il est important que la clé primaire de votre source soit correctement mappée sur _id afin que les mises à jour et les suppressions de chaque document soient appliquées correctement. Par exemple:

-- simple single field mapping when `field` is already a string
SELECT field AS _id;
-- single field with casting required since `field` isn't a string
SELECT CAST(field AS string) AS _id;
-- compound primary key from source mapping to _id using SQL function ID_HASH
SELECT ID_HASH(field1, field2) AS _id;

_heure de l’évènement

Il s’agit de l’horodatage d’un document dans Rockset. En règle générale, les deltas CDC incluent les horodatages de leur source, ce qui est utile pour correspondre au champ spécial de Rockset pour les horodatages. Par exemple:

-- Map source field `ts_epoch` which is ms since epoch to timestamp type for _event_time
SELECT TIMESTAMP_MILLIS(ts_epoch) AS _event_time

_op

Cela indique à la plateforme d’ingestion comment interpréter un nouvel enregistrement. Le plus souvent, les nouveaux documents sont exactement cela – de nouveaux documents – et ils seront ingérés dans la collection sous-jacente. Cependant, en utilisant _op, vous pouvez également utiliser un document pour coder une opération de suppression. Par exemple:

{"_id": "123", "name": "Ari", "city": "San Mateo"} → insert a new document with id 123
{"_id": "123", "_op": "DELETE"} → delete document with id 123

Cette flexibilité permet aux utilisateurs de mapper une logique complexe à partir de leurs sources. Par exemple:

SELECT field as _id, IF(type="delete", 'DELETE', 'UPSERT') AS _op


cdc-ingest-transformation-exemple

Vérifier nos documents pour plus d’informations.

Modèles et plateformes

Comprendre les concepts ci-dessus permet d’importer les données CDC dans Rockset telles quelles. Cependant, construire la transformation correcte sur ces objets profondément imbriqués et mapper correctement tous les champs spéciaux peut parfois être sujet aux erreurs et fastidieux. Pour relever ces défis, nous avons ajouté une prise en charge native et à accès anticipé pour une variété de modèles de transformation d’ingestion. Ceux-ci aideront les utilisateurs à configurer plus facilement les transformations correctes en plus des données CDC. En faisant partie de la transformation de l’ingestion, vous bénéficiez de la puissance et de la flexibilité de la plateforme d’ingestion de données de Rockset pour extraire ces données CDC de n’importe laquelle de nos sources prises en charge, y compris les flux d’événements, directement via notre API d’écriture, ou même via des lacs de données comme S3, GCS, et Stockage Blob Azure. La liste complète des modèles et des plates-formes pour lesquels nous annonçons la prise en charge comprend les éléments suivants :

Prise en charge des modèles

  • Débézium: Une plateforme distribuée open source pour la capture de données modifiées.
  • Service de migration de données AWS: Le service Web d’Amazon pour la migration des données.
  • Nuage confluent (via Debezium) : Une plateforme de streaming de données cloud native.
  • Arcion: Une plateforme CDC d’entreprise conçue pour l’évolutivité.
  • STRIM: Une plateforme unifiée d’intégration et de streaming de données.

Prise en charge de la plateforme

  • Airbyte: Une plateforme ouverte qui unifie les pipelines de données.
  • Estuaire: Une plateforme d’opérations de données en temps réel.
  • Décodable: Une plateforme de données en temps réel sans serveur.

Si vous souhaitez demander un accès anticipé à la prise en charge des modèles CDC, veuillez envoyer un e-mail à [email protected].

À titre d’exemple, voici un modèle de message indiquant que Rockset prend en charge la configuration automatique pour :

{
  "data": {
    "ID": "1",
    "NAME": "User One"
  },
  "before": null,
  "metadata": {
    "TABLENAME": "Employee",
    "CommitTimestamp": "12-Dec-2016 19:13:01",
    "OperationName": "INSERT"
  }
}

Et voici la transformation déduite :

SELECT
    IF(
        _input.metadata.OperationName="DELETE",
        'DELETE',
        'UPSERT'
    ) AS _op,
    CAST(_input.data.ID AS string) AS _id,
    IF(
        _input.metadata.OperationName="INSERT",
        PARSE_TIMESTAMP(
            '%d-%b-%Y %H:%M:%S',
            _input.metadata.CommitTimestamp
        ),
        UNDEFINED
    ) AS _event_time,
    _input.data.ID,
    _input.data.NAME
FROM
    _input
WHERE
    _input.metadata.OperationName IN ('INSERT', 'UPDATE', 'DELETE')

Ces technologies et produits vous permettent de créer des pipelines de données en temps réel hautement sécurisés et évolutifs en quelques minutes seulement. Chacune de ces plates-formes dispose d’un connecteur intégré pour Rockset, évitant de nombreuses exigences de configuration manuelle, telles que celles pour :

  • PostgreSQL
  • MySQL
  • IBM DB2
  • Vittes
  • Cassandre

Du lot au temps réel

CDC a le potentiel de rendre possible l’analyse en temps réel. Mais si votre équipe ou votre application a besoin d’un accès aux données à faible latence, le fait de s’appuyer sur des systèmes qui traitent les données par lots ou par microbatch fera exploser vos coûts. Les cas d’utilisation en temps réel sont gourmands en calcul, mais les architectures des systèmes par lots sont optimisées pour le stockage. Vous disposez désormais d’une nouvelle option totalement viable. Les outils de capture de données modifiées comme Airbyte, Striim, Debezium, et autres, ainsi que les bases de données d’analyse en temps réel comme Rockset reflètent une toute nouvelle architecture et sont enfin en mesure de tenir la promesse d’un CDC en temps réel. Ces outils sont spécialement conçus pour des analyses hautes performances et à faible latence à grande échelle. CDC est flexible, puissant et standardisé de manière à garantir que la prise en charge des sources et des destinations de données continuera de croître. Rockset et CDC s’associent parfaitement, réduisant le coût du CDC en temps réel afin que les organisations de toute taille puissent enfin transmettre les lots passés et se tourner vers des analyses en temps réel.

Si vous souhaitez essayer Rockset + CDC, vous pouvez démarrer un essai gratuit de deux semaines avec 300 $ de crédits. ici.



Related Articles

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Latest Articles