Partager via


Connexion de données Event Hubs (aperçu)

Important

Azure Synapse Analytics Data Explorer (version préliminaire) sera retiré le 7 octobre 2025. Après cette date, les charges de travail exécutées sur Synapse Data Explorer seront supprimées et les données d’application associées seront perdues. Nous vous recommandons vivement de migrer vers Eventhouse dans Microsoft Fabric.

Le programme Microsoft Cloud Migration Factory (CMF) est conçu pour aider les clients à migrer vers Fabric. Le programme offre des ressources clavier pratiques sans coût pour le client. Ces ressources sont affectées pendant une période de 6 à 8 semaines, avec une étendue prédéfinie et acceptée. Les nominations des clients sont acceptées par l’équipe de compte Microsoft ou directement en envoyant une demande d’aide à l’équipe CMF.

Azure Event Hubs est une plateforme de streaming de Big Data et un service d’ingestion d’événements. Azure Synapse Data Explorer offre une ingestion continue à partir d’Event Hubs gérés par le client.

Le pipeline d’ingestion Event Hubs transfère les événements vers Azure Synapse Data Explorer en plusieurs étapes. Vous créez d’abord un Event Hubs dans le portail Azure. Vous créez ensuite une table cible dans Azure Synapse Data Explorer dans laquelle les données dans un format particulier seront ingérées à l’aide des propriétés d’ingestion données. La connexion Event Hubs doit connaître le routage des événements. Les données sont incorporées avec des propriétés sélectionnées en fonction du mappage des propriétés du système d’événements. Créez une connexion à Event Hubs pour créer un Event Hubs et envoyer des événements. Ce processus peut être géré par le biais du portail Azure, programmatiquement avec C# ou Python, ou avec le modèle Azure Resource Manager.

Pour obtenir des informations générales sur l’ingestion de données dans Azure Synapse Data Explorer, consultez la vue d’ensemble de l’ingestion des données d’Azure Synapse Data Explorer.

Format des données

  • Les données sont lues dans l’instance Event Hubs sous forme d’objets EventData.

  • Examinez les formats pris en charge.

    Note

    Event Hub ne prend pas en charge le format .raw.

  • Les données peuvent être compressées en utilisant l’algorithme de compression GZip. Spécifiez les Compressionpropriétés d’ingestion.

    • La compression des données n’est pas prise en charge pour les formats compressés (Avro, Parquet, ORC).
    • Les encodages sur mesure et les propriétés système personnalisées ne sont pas pris en charge sur les données compressées.

Propriétés d’ingestion

Les propriétés d’ingestion déterminent le processus d’ingestion, où router les données et comment les traiter. Vous pouvez spécifier les propriétés d’ingestion de l’ingestion des événements avec EventData.Properties. Vous pouvez définir les propriétés suivantes :

Propriété Descriptif
Table Nom (respectant la casse) de la table cible existante. Remplace le paramètre Table défini dans le volet Data Connection.
Format Format de données. Remplace le paramètre Data format défini dans le volet Data Connection.
IngestionMappingReference Nom du mappage d’ingestion existant à utiliser. Remplace le paramètre Column mapping défini dans le volet Data Connection.
Compression Compression des données, None (valeur par défaut) ou GZip compression.
Codage Encodage des données, la valeur par défaut est UTF8. Il peut s’agir de l’un des encodages pris en charge par .NET.
Étiquettes Liste d’étiquettes à associer aux données ingérées, sous forme de chaîne de tableau JSON. L’utilisation d’étiquettes a des répercussions sur les performances.

Note

Seuls les événements mis en file d’attente après que vous avez créé la connexion de données sont ingérés.

Routage d’événements

Lorsque vous configurez une connexion Event Hubs au cluster Azure Synapse Data Explorer, vous spécifiez les propriétés de la table cible (nom de table, format de données, compression et mappage). Le routage par défaut de vos données est également appelé static routing. Vous pouvez également spécifier des propriétés de table cible pour chaque événement, à l’aide des propriétés d’événement. La connexion route dynamiquement les données comme spécifié dans EventData.Properties, en remplaçant les propriétés statiques de cet événement.

Dans l’exemple suivant, définissez les détails d’Event Hubs et envoyez des données de métrique météorologique à la table WeatherMetrics. Les données sont au json format. mapping1 est prédéfini dans la table WeatherMetrics.

Avertissement

Cet exemple utilise l’authentification de chaîne de connexion pour se connecter à Event Hubs par souci de simplicité de l’exemple. Toutefois, le codage en dur d’une chaîne de connexion dans votre script nécessite un niveau de confiance très élevé dans l’application et présente des risques de sécurité.

Pour des solutions sécurisées à long terme, utilisez une de ces options :

var eventHubNamespaceConnectionString=<connection_string>;
var eventHubName=<event_hub>;

// Create the data
var metric = new Metric { Timestamp = DateTime.UtcNow, MetricName = "Temperature", Value = 32 }; 
var data = JsonConvert.SerializeObject(metric);

// Create the event and add optional "dynamic routing" properties
var eventData = new EventData(Encoding.UTF8.GetBytes(data));
eventData.Properties.Add("Table", "WeatherMetrics");
eventData.Properties.Add("Format", "json");
eventData.Properties.Add("IngestionMappingReference", "mapping1");
eventData.Properties.Add("Tags", "['mydatatag']");

// Send events
var eventHubClient = EventHubClient.CreateFromConnectionString(eventHubNamespaceConnectionString, eventHubName);
eventHubClient.Send(eventData);
eventHubClient.Close();

Mappage des propriétés du système d’événements

Les propriétés système stockent les propriétés définies par le service Event Hubs, au moment où l’événement est mis en file d’attente. La connexion Azure Synapse Data Explorer Event Hubs intégrera les propriétés sélectionnées dans les données arrivant dans votre table.

Note

  • Les propriétés système sont prises en charge pour les formats json et tabulaires (csv, tsv, etc.), mais pas sur les données compressées. Quand vous utilisez un format non pris en charge, les données sont toujours ingérées, mais les propriétés sont ignorées.
  • Pour les données tabulaires, les propriétés système sont prises en charge uniquement pour les messages d’événements à enregistrement unique.
  • Pour les données JSON, les propriétés système sont également prises en charge pour les messages d’événements à enregistrements multiples. Dans ce cas, les propriétés système sont ajoutées uniquement au premier enregistrement du message d’événement.
  • Pour un mappage csv, des propriétés sont ajoutées au début de l’enregistrement dans l’ordre indiqué dans la table Propriétés système.
  • Pour un mappage json, des propriétés sont ajoutées en fonction des noms de propriété dans la table Propriétés système.

Propriétés système

Event Hubs expose les propriétés système suivantes :

Propriété Type de données Descriptif
x-opt-enqueued-time datetime Heure UTC à laquelle l’événement a été mis en file d’attente
x-opt-numéro-de-séquence long Numéro de séquence logique de l’événement dans le flux de partition des Hubs d’événements
x-opt-offset ficelle Le décalage de l’événement par rapport au flux de la partition des "Event Hubs". L’identificateur de décalage est unique au sein d'une partition du flux de Event Hubs.
x-opt-publisher ficelle Nom de l’éditeur, si le message a été envoyé à un point de terminaison d’éditeur
x-opt-clé-de-partition ficelle Clé de partition de la partition correspondante qui a stocké l’événement

Si vous avez sélectionné Propriétés du système d’événements dans la section Source de données de la table, vous devez inclure les propriétés dans le schéma et le mappage de table.

Exemples de mappage de schéma

Exemple de mappage de schéma de table

Si vos données comprennent trois colonnes (Timespan, Metricet Value) et que les propriétés que vous incluez sont x-opt-enqueued-time et x-opt-offset, créez ou modifiez le schéma de table à l’aide de la commande suivante :

    .create-merge table TestTable (TimeStamp: datetime, Metric: string, Value: int, EventHubEnqueuedTime:datetime, EventHubOffset:string)

Exemple de mappage CSV

Exécutez les commandes suivantes pour ajouter des données au début de l’enregistrement. Notez les valeurs ordinales.

    .create table TestTable ingestion csv mapping "CsvMapping1"
    '['
    '   { "column" : "Timespan", "Properties":{"Ordinal":"2"}},'
    '   { "column" : "Metric", "Properties":{"Ordinal":"3"}},'
    '   { "column" : "Value", "Properties":{"Ordinal":"4"}},'
    '   { "column" : "EventHubEnqueuedTime", "Properties":{"Ordinal":"0"}},'
    '   { "column" : "EventHubOffset", "Properties":{"Ordinal":"1"}}'
    ']'

Exemple de mappage JSON

Les données sont ajoutées à l’aide du mappage des propriétés système. Exécutez les commandes suivantes :

    .create table TestTable ingestion json mapping "JsonMapping1"
    '['
    '    { "column" : "Timespan", "Properties":{"Path":"$.timestamp"}},'
    '    { "column" : "Metric", "Properties":{"Path":"$.metric"}},'
    '    { "column" : "Value", "Properties":{"Path":"$.value"}},'
    '    { "column" : "EventHubEnqueuedTime", "Properties":{"Path":"$.x-opt-enqueued-time"}},'
    '    { "column" : "EventHubOffset", "Properties":{"Path":"$.x-opt-offset"}}'
    ']'

Connexion à Event Hubs

Note

Pour des performances optimales, créez toutes les ressources dans la même région que le cluster Azure Synapse Data Explorer.

Créer un Event Hubs

Si vous n’en avez pas encore, créez un Event Hubs. La connexion à Event Hubs peut être gérée via le portail Azure, par programmation avec C# ou Python, ou avec le modèle Azure Resource Manager.

Note

  • Le nombre de partitions n’est pas modifiable. Vous devez donc envisager une mise à l’échelle à long terme lors de la définition du nombre de partitions.
  • Le groupe de consommateurs doit être unique par consommateur. Créez un groupe de consommateurs dédié à la connexion Azure Synapse Data Explorer.

Envoyer des événements

Consultez l’exemple d’application qui génère des données et les envoie à un Event Hubs.

Pour obtenir un exemple de génération d’exemples de données, consultez Ingestion de données à partir d’Event Hubs dans Azure Synapse Data Explorer

Configurer une solution de géo-reprise d’activité après sinistre

Event Hubs offre une solution de géorécupération d’urgence . Azure Synapse Data Explorer ne prend pas en charge Alias les espaces de noms Event Hubs. Pour implémenter la géorécupération d’urgence dans votre solution, créez deux connexions de données Event Hubs : une pour l’espace de noms principal et une pour l’espace de noms secondaire. Azure Synapse Data Explorer écoute les deux connexions Event Hubs.

Note

Il est de la responsabilité de l’utilisateur d’implémenter un basculement entre l’espace de noms principal et l’espace de noms secondaire.

Étapes suivantes