Aller au contenu principal

Présentation du connecteur Zerobus Ingest

Zerobus Ingest est une API d'ingestion basée sur le push qui écrit des données directement dans les tables Delta du Unity Catalog. C'est un connecteur serverless qui s'adapte automatiquement pour gérer les connexions entrantes. Cela ne nécessite pas de configurer les partitions ni de gérer les brokers.

Avec Zerobus Ingest, votre « stratégie de mise à l'échelle » consiste à ouvrir plus de connexions. Cela rationalise les workflows d'ingestion en éliminant le besoin d'une infrastructure de bus de messages.

Toute application pouvant s'intégrer aux SDK Zerobus Ingest ou communiquer via les APIs prises en charge (gRPC, REST et OpenTelemetry) peut utiliser Zerobus Ingest pour envoyer efficacement des données dans des tables Delta.

Les buffers de Zerobus Ingest transmettent les données avant de les ajouter à une table Delta. Ce buffering crée un mécanisme d'ingestion efficace et durable qui prend en charge un volume élevé de clients avec un throughput variable.

Une fois matérialisées au format Delta, les données deviennent entièrement compatibles avec la plateforme Databricks Data Intelligence Platform complète, permettant aux utilisateurs de tirer parti d'outils et de fonctionnalités familiers pour une analyse et un traitement ultérieurs des données.

Concepts

Un producteur de données ouvre d'abord un stream vers l'API Zerobus Ingest et spécifie une table Delta cible, construit un message correspondant à son schéma, puis envoie le message via le stream ouvert. Le service rend les données durables, accuse réception du message du client et matérialise les données dans la table Delta de manière optimisée.

Comment fonctionne Zerobus Ingest

Stream

Un stream est une connexion directe entre votre client et le serveur Zerobus Ingest. Les SDK utilisent des Stream pour faciliter les connexions durables et à haut throughput.

  • Les Stream sont uniquement utilisés dans l'API gRPC avec les SDK.
  • Un Stream ingère des données dans une seule table cible.
  • L'ordre de livraison des événements est garanti au niveau du Stream.
  • Des Streams supplémentaires peuvent être ouverts pour écrire des données dans différentes tables.
  • Des Stream supplémentaires peuvent être ouverts pour augmenter le throughput client.
    • Remarque : si votre client répartit les messages entre différents Stream, l'ordre ne sera plus garanti.

Serveur

Le service Zerobus Ingest ne crée ni ne manipule automatiquement de tables. Les utilisateurs doivent créer la table eux-mêmes. Les tables et leurs schémas sont les sources de référence pour les attentes des données entrantes.

Le serveur Zerobus Ingest accepte les données qui lui sont envoyées par les clients, valide qu'elles correspondent au schéma de la table cible, puis les écrit dans la table. Si les données tiennent dans la table, elles seront durables. Un accusé de réception est ensuite renvoyé au client.

By default, les enregistrements dont les champs ne correspondent pas au schéma sont rejetés. Pour capturer ces champs à la place, consultez Capturer les champs non conformes avec la colonne de récupération Zerobus.

Les responsabilités du service incluent :

  • Validation du schéma du message dans la table.
  • Matérialisation des données en temps voulu dans la table cible.
  • Envoi d'un accusé de réception au client indiquant que les données sont durables.

Client

L'intégration client implique :

  • Sélection d'une table cible.
  • Établissement d'un Stream avec le service Zerobus Ingest.
  • Construction d'un message compatible avec le schéma.
  • Envoi du message.
  • Gestion des accusés de réception des messages.
  • Implémenter des mécanismes de récupération en cas de défaillances côté client, stream ou serveur (par exemple, problèmes de connexion, non-concordances de schémas)

Les SDK Zerobus Ingest fournissent des méthodes conviviales pour réaliser l'intégration client, et la documentation offre des exemples de différents modèles de développement. Pour les intégrations personnalisées, les SDK peuvent servir de référence pour la structure d'intégration et la gestion de la récupération.

Premiers pas avec Zerobus Ingest

remarque

Si vous avez un pare-feu côté client, ajoutez l'adresse IP utilisée par Zerobus Ingest à votre liste d'autorisation. Pour afficher les adresses IP par région, consultez les adresses IP et domaines pour les services et assets Databricks.

  1. Obtenez une URL Zerobus Ingest.
  2. Créez ou identifiez la table dans laquelle vous souhaitez ingérer des données.
  3. Créez un Service Principal et accordez des privilèges à la table.
  4. Connectez un client ou un exportateur pour start l'envoi de données.

Choisissez le guide pour votre cas d'utilisation :

  • Ingérez vos propres données : utilisez les SDK Zerobus Ingest ou l’API REST avec un schéma que vous définissez. Pour des instructions complètes, consultez Utiliser le connecteur Zerobus Ingest.

  • **Ingérer les données OpenTelemetry** : Utilisez des SDK ou des collecteurs OpenTelemetry standards pour envoyer les traces, les logs et les métriques dans des schémas de table prédéfinis. Pour obtenir des instructions complètes, consultez Ingestion de données OpenTelemetry avec Zerobus Ingest.

Emplacement de fallback durable

Si une modification incompatible est apportée à votre table cible après que Zerobus Ingest a rendu vos données durables, avant que Zerobus Ingest n'ait eu la possibilité de publier (pousser le fichier vers le stockage), le connecteur rendra les données disponibles dans un dossier séparé au sein de l'emplacement de stockage de votre table.

Les données sont conservées en tant que fichiers Parquet sous le chemin suivant, relatif au répertoire racine de la table : _zerobus/table_rejected_parquets/

Ce répertoire est créé directement sous l'emplacement de stockage racine physique de la table, et tous les fichiers Parquet générés par le service y sont écrits. Cela garantit que toutes les données persistantes restent dans les limites de stockage de la table et suivent les mêmes contrôles d'accès et politiques de cycle de vie que la table elle-même.

Coût

Les frais Zerobus Ingest seront facturés sous l' SKU « Jobs Serverless ». Les tarifs sont disponibles sur la page de Tarifs Lakeflow Connect.

monitoring de votre utilisation

Il existe deux méthodes pour le monitoring de l'utilisation de votre connecteur Zerobus Ingest.

Tables système Zerobus Ingest

Vous pouvez surveiller votre utilisation via les tables système Zerobus Ingest. Consultez la référence des tables système Zerobus Ingest.

Table système de facturation

Vous pouvez surveiller vos dépenses via la table système d'utilisation facturable. Consultez la référence de la table système d'utilisation facturable. Filtrer l'utilisation de Zerobus Ingest avec :

  • billing_origin_product = 'LAKEFLOW_CONNECT'
  • product_features.lakeflow_connect.zerobus_request_type = 'GRPC' OU 'HTTP'
info

Bêta

L'ingestion OpenTelemetry (OTLP) est en bêta et n'est pas facturée pour le moment.