Explorer, résoudre les problèmes et vérifier l’ingestion par lots avec SQL
Ce document explique comment vérifier et valider les enregistrements dans les lots ingérés avec SQL. Ce document vous apprend à :
- Accéder aux métadonnées du lot de jeux de données
- Résolution des problèmes et assurance de l’intégrité des données en interrogeant les lots
Conditions préalables
Pour faciliter votre compréhension des concepts abordés dans ce document, vous devez posséder des connaissances sur les sujets suivants :
- Ingestion des données : consultez la présentation de l’ingestion des données pour découvrir les principes de base de l’ingestion des données dans Experience Platform, y compris les différentes méthodes et processus impliqués.
- Ingestion par lots : consultez la présentation de l’API ingestion par lots pour découvrir les concepts de base de l’ingestion par lots. Plus précisément, ce qu’est un « lot » et comment il fonctionne dans le processus d’ingestion de données d’Experience Platform.
- Métadonnées système dans les jeux de données : consultez la présentation du service de catalogue pour savoir comment les champs de métadonnées système sont utilisés pour effectuer le suivi et l’interrogation des données ingérées.
- Modèle de données d’expérience (XDM) : consultez la présentation de l’interface utilisateur des schémas et les des principes de base de la composition des schémas pour en savoir plus sur les schémas XDM et sur la manière dont ils représentent et valident la structure et le format des données ingérées dans Experience Platform.
Accéder aux métadonnées du lot de jeux de données access-dataset-batch-metadata
Pour vous assurer que les colonnes système (colonnes de métadonnées) sont incluses dans les résultats de la requête, utilisez la commande SQL set drop_system_columns=false dans votre Query Editor. Cela configure le comportement de votre session de requête SQL. Cette entrée doit être répétée si vous démarrez une nouvelle session.
Ensuite, pour afficher les champs système du jeu de données, exécutez une instruction SELECT all pour afficher les résultats du jeu de données, par exemple select * from movie_data. Les résultats comprennent deux nouvelles colonnes sur le côté droit _acp_system_metadata et _ACP_BATCHID. Les colonnes de métadonnées _acp_system_metadata et _ACP_BATCHID permettent d’identifier les partitions logiques et physiques des données ingérées.
Lorsque des données sont ingérées dans Experience Platform, une partition logique leur est attribuée en fonction des données entrantes. Cette partition logique est représentée par _acp_system_metadata.acp_sourceBatchId. Cet identifiant permet de regrouper et d’identifier logiquement les lots de données avant qu’ils ne soient traités et stockés.
Une fois les données traitées et ingérées dans le lac de données, une partition physique représentée par _ACP_BATCHID lui est attribuée. Cet identifiant reflète la partition de stockage réelle dans le lac de données où se trouvent les données ingérées.
Utilisation de SQL pour comprendre les partitions logiques et physiques understand-partitions
Pour comprendre comment les données sont regroupées et distribuées après ingestion, utilisez la requête suivante afin de compter le nombre de partitions physiques distinctes (_ACP_BATCHID) pour chaque partition logique (_acp_system_metadata.acp_sourceBatchId).
SELECT _acp_system_metadata, COUNT(DISTINCT _ACP_BATCHID) FROM movie_data
GROUP BY _acp_system_metadata
Les résultats de cette requête sont affichés dans l’image ci-dessous.
Ces résultats montrent que le nombre de lots d’entrée ne correspond pas nécessairement au nombre de lots de sortie, car le système détermine la manière la plus efficace de traiter par lots et de stocker les données dans le lac de données.
Pour les besoins de cet exemple, on suppose que vous avez ingéré un fichier CSV dans Experience Platform et créé un jeu de données appelé drug_checkout_data.
Le fichier drug_checkout_data est un ensemble profondément imbriqué de 35 000 enregistrements. Utilisez l’SELECT * FROM drug_orders; d’instructions SQL pour prévisualiser le premier ensemble d’enregistrements dans le jeu de données drug_orders basé sur JSON.
L’image ci-dessous présente un aperçu du fichier et de ses enregistrements.
Utiliser SQL pour générer des informations sur le processus d’ingestion par lots sql-insights-on-batch-ingestion
Utilisez l’instruction SQL ci-dessous pour fournir des informations sur la manière dont le processus d’ingestion de données a regroupé et traité les enregistrements d’entrée par lots.
SELECT _acp_system_metadata,
Count(DISTINCT _acp_batchid) AS numoutputbatches,
Count(_acp_batchid) AS recordcount
FROM drug_orders
GROUP BY _acp_system_metadata
Les résultats de la requête sont affichés dans l’image ci-dessous.
Les résultats démontrent l’efficacité et le comportement du processus d’ingestion de données. Bien que trois lots d'entrées aient été créés — contenant chacun 2 000, 24000 et 9 000 enregistrements — lorsque les enregistrements ont été combinés et dédupliqués, il ne restait qu'un seul lot.
Valider un lot avec SQL validate-a-batch-with-SQL
Ensuite, validez et vérifiez les enregistrements qui ont été ingérés dans le jeu de données avec SQL.
Once you have ingested a batch, you must navigate to the Datasets activity tab for the dataset you ingested data into.
In the Experience Platform UI, select Datasets in the left-navigation to open the Datasets dashboard. Next, select the name of the dataset from the Browse tab to access the Dataset activity screen.
The Dataset activity view appears. This view contains details of your selected dataset. It includes any ingested batches which are displayed in a table format.
Select a batch from the list of available batches and copy the Batch ID from the details panel on the right.
Next, use the following query to retrieve all the records that were included in the dataset as part of that batch:
SELECT * FROM movie_data
WHERE _acp_batchid='01H00BKCTCADYRFACAAKJTVQ8P'
LIMIT 1;
The _ACP_BATCHID keyword is used to filter the Batch ID.
LIMIT clause is helpful if you want to restrict the number of rows displayed, but a filter condition is more desirable.When you execute this query in the Query Editor, the results are truncated to 100 rows. The Query Editor is designed for quick previews and investigation. To retrieve up to 50,000 rows, you can use a third-party tool like DBVisualizer or DBeaver.
Étapes suivantes next-steps
By reading this document, you learned the essentials of verifying and validating records in ingested batches as part of the data ingestion process. You also gained insights into accessing dataset batch metadata, understanding logical and physical partitions, and querying specific batches using SQL commands. This knowledge can help you ensure data integrity and optimize your data storage on Experience Platform.
Next, you should practice data ingestion to apply the concepts learned. Ingest a sample dataset into Experience Platform with either the provided sample files or your own data. If you have not done so already, read the tutorial on how to ingest data into Adobe Experience Platform.
Alternatively, you could learn how to connect and verify Query Service with a variety of desktop client applications to enhance your data analysis capabilities.