Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
✅ Azure Stream Analytics
Le langage de requête Azure Stream Analytics étend la syntaxe SQL pour permettre des calculs complexes sur des flux d’événements. Avec Stream Analytics, il existe quelques concepts liés à la remise d’événements qui méritent d’être abordés :
- Traitement exactement une fois
- Exactement une fois la livraison
- Duplicate records
En plus de ces concepts détaillés ci-dessous, il est important de prendre en compte l’option de démarrage d’un travail pour vous assurer qu’aucune perte de données ne peut se produire.
Exactly-once processing
La garantie de traitement exactement une fois signifie qu’en fonction d’un ensemble d’entrées, le système retourne toujours les mêmes résultats. Cela est très important pour la répétabilité et s’applique même en cas de redémarrage du travail, ou sur plusieurs travaux s’exécutant en parallèle sur la même entrée. Azure Stream Analytics garantit exactement une fois le traitement.
Exactly-once delivery
La garantie de remise exactement une fois signifie que toutes les sorties du traitement exactement une fois sont remises au récepteur de sortie exactement une seule fois, de sorte qu’il n’y a pas de sortie en double. Cela nécessite des fonctionnalités transactionnelles sur l’adaptateur de sortie.
Azure Stream Analytics garantit une remise au moins une fois aux récepteurs de sortie, ce qui garantit que tous les résultats sont générés, mais les résultats en double peuvent se produire. Toutefois, une remise exactement une fois peut être obtenue avec plusieurs sorties telles qu’Azure Cosmos DB ou Azure SQL.
Duplicate records
En raison d’une garantie de remise au moins une fois, lorsqu’un travail Stream Analytics est en cours d’exécution, des enregistrements en double peuvent parfois être remarqués dans les données de sortie. Ces enregistrements en double sont attendus, car les adaptateurs de sortie Azure Stream Analytics n’écrivent pas les événements de sortie de manière transactionnelle. Ce scénario d’enregistrement en double peut se produire si l’une des conditions suivantes se produit :
- L’instance Azure est mise à niveau pendant l’exécution du travail
- Le travail Stream Analytics est mis à niveau ou un problème se produit avec une connectivité ou une fiabilité vers la sortie du travail
- L’instance Azure exécutant le travail a une panne
- Le travail Stream Analytics est démarré avec la dernière option arrêtée
Le consommateur en aval des événements de sortie doit déduplier les événements à l’aide de l’identité logique des événements. Par exemple, si vous regroupez des événements par groupes dans une fenêtre bascule, l’identité logique de l’événement est les groupes et l’heure de fin de la fenêtre bascule. Si vous exécutez une requête directe, vous devrez peut-être porter un ID unique sur l’événement afin de déduplier.
Sortie prenant en charge la livraison exacte-une fois avec Azure Stream Analytics
Base de données Azure Cosmos DB
À l’aide d’Azure Cosmos DB, Azure Stream Analytics garantit une livraison exactement une fois. Étant donné qu’Azure Stream Analytics utilise upsert, aucune action n’est nécessaire par l’utilisateur. Consultez plus d’informations sur la sortie Azure Stream Analytics vers Azure Cosmos DB.
SQL
Lorsque vous utilisez la sortie SQL, les utilisateurs peuvent obtenir une remise exactement une fois si les exigences suivantes sont remplies :
- tous les événements de diffusion en continu de sortie ont une clé naturelle, c’est-à-dire qu’ils sont identifiables de manière unique par un champ ou par une combinaison de champs.
- la table SQL de sortie a une contrainte unique (ou clé primaire) créée à l’aide de la clé naturelle des événements de sortie.
Cela suffit pour éviter les doublons, car la sortie SQL respecte toutes les contraintes placées sur la table en ignorant les événements qui provoquent une violation de contrainte unique.
Azure Table
Toutes les entités d’une table de stockage Azure sont identifiées de manière unique par la concaténation des champs et RowKey des PartitionKey champs. Entités Azure Stream Analytics upserts. Par conséquent, la valeur d’une entité de table sera l’événement de sortie le plus récent avec la combinaison correspondante RowKey/PartitionKey . Par conséquent, pour obtenir une remise exactement une fois, assurez-vous que chaque événement de sortie a une combinaison unique RowKey/PartitionKey . Si c’est le cas, les événements en double remplacent les versions antérieures. (Le champ défini par Timestamp le système, qui est l’heure de dernière modification de l’entité, change toujours dans ce cas.)