Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exportation des journaux d'analyse des requêtes
AWS Clean Rooms exécute des requêtes SQL sur Apache Spark. Lorsqu'une requête échoue ou s'exécute lentement, les journaux Spark de cette requête contiennent les détails d'exécution dont vous avez besoin pour en trouver la cause. Ils montrent quelle étape a échoué, comment le travail a été réparti entre les tâches, quelle quantité de mémoire a été utilisée et où le temps a été consacré.
Une requête parcourt les données fournies par plusieurs membres de la collaboration. Les journaux Spark bruts peuvent donc révéler des informations sur les données d'un autre membre, telles que les noms des tables, les emplacements de stockage et les valeurs des données. Pour cette raison, AWS Clean Rooms ne vous donne pas les journaux bruts. Au lieu de cela, il produit une copie expurgée dans laquelle les données des clients et les métadonnées des membres sont expurgées. AWS Clean Rooms exporte cette copie vers un compartiment Amazon S3 dont vous êtes propriétaire. Vous analysez ensuite les journaux exportés à l'aide de l'outil de votre choix, tel que Spark History Server.
Important
Les journaux exportés sont expurgés. Les valeurs des données sont supprimées et les nombres et les tailles sont indiqués sous forme d'approximations afin de ne pas révéler de détails sur les données de la collaboration. Par conséquent, les journaux exportés ne correspondent pas aux journaux produits par une tâche Spark en dehors de celle-ci AWS Clean Rooms. Avant de les interpréter, lisezComprendre les journaux rédigés.
Conditions préalables
Avant de pouvoir exporter des journaux pour une requête, toutes les conditions suivantes doivent être remplies :
-
Votre adhésion a la capacité de
CAN_EXPORT_QUERY_ANALYSIS_LOGmembre. Chaque membre de la collaboration doit approuver une demande de modification pour accorder cette fonctionnalité. Pour de plus amples informations, veuillez consulter Mettre à jour les capacités des membres. -
Vous êtes l'auteur de la requête ou le payeur de la requête. Cette fonctionnalité ne suffit pas à elle seule : vous ne pouvez exporter les journaux que pour les requêtes que vous avez exécutées ou pour lesquelles vous avez payé.
-
La requête a atteint l'état terminal. Vous pouvez exporter les journaux d'une requête dont le statut est
SUCCESSFAILED,CANCELLED, ouTIMED_OUT. Vous ne pouvez pas exporter les journaux tant qu'une requête est toujours en cours d'exécution.
L'exportation des journaux n'est pas disponible pour toutes les requêtes. Pour les cas qui ne sont pas pris en charge, voirConsidérations et restrictions.
Il n'est pas nécessaire de créer un rôle IAM pour l'exportation des journaux. AWS Clean Rooms écrit les journaux exportés en utilisant votre propre identité, de sorte qu'il n'écrit les journaux que lorsque vos propres autorisations le permettent déjà. Conformément à la règle du moindre privilège, accordez l'accès en écriture uniquement au compartiment et au préfixe de clé que vous utilisez pour les journaux exportés.
Note
Si le compartiment de destination utilise SSE-KMS une clé gérée par le client, vous devez être autorisé à utiliser cette clé. Dans le cas contraire, la demande d'exportation échoue immédiatement.
Exportation de journaux pour une requête
L'exportation des journaux est asynchrone. Lorsque vous démarrez une exportation, AWS Clean Rooms renvoie immédiatement les données avec un identifiant d'exportation et un statut égal àIN_PROGRESS, puis expurgée et copie les journaux en arrière-plan.
Avant de commencer l'exportation, AWS Clean Rooms écrit un objet de zéro octet nommé validationSuccess dans votre compartiment de destination pour confirmer qu'il peut y écrire. Si cette vérification échoue, la demande échoue immédiatement avec une erreur de validation au lieu d'échouer plus tard en arrière-plan.
Une seule exportation peut être active à la fois pour une requête et une destination données. Si vous démarrez une exportation alors qu'une autre exportation pour la même requête et la même destination Amazon S3 est toujours en cours, la demande échoue avec une erreur de validation. Pour exporter deux fois la même requête à la fois, utilisez un préfixe de clé différent pour la deuxième exportation.
Vous exportez indépendamment des autres membres. Si vous et un autre membre en avez la capacité et avez tous deux exécuté ou payé pour la même requête, chacun de vous peut exporter les journaux vers sa propre destination.
Où sont écrits les journaux exportés
AWS Clean Rooms écrit les journaux exportés sous le compartiment et le préfixe de clé que vous spécifiez, en utilisant la structure suivante :
s3://your-bucket/key-prefix/collaboration=collaboration-id/analysis=protected-query-id/analysis-log-export-id/
Comme le chemin inclut l'ID d'exportation, le fait d'exporter la même requête plusieurs fois ne remplace pas les journaux d'une exportation précédente.
Un export contient le journal des événements Spark expurgé pour la requête. Ce journal est un ensemble d'enregistrements JSON structurés couvrant les tâches, les étapes, les tâches, les horaires et les plans de requêtes. Spark écrit lui-même ce format de journal des événements. Vous pouvez effectuer une exportation avec n'importe quel outil qui lit les journaux d'événements Spark, y compris votre propre outil. AWS Clean Rooms ne fournit pas de visualiseur pour les journaux exportés. Dans le répertoire d'exportation, les enregistrements suivent la structure utilisée par Spark pour un journal des événements évolutif. Un répertoire nommé eventlog_v2_ contient un ou plusieurs protected-query-idevents_ fichiers et un appstatus_ fichier qui indique que l'application a été terminée. Les noms de répertoire et de fichier utilisent l'ID de requête protégé plutôt qu'un AWS Clean Rooms identifiant interne.
Spark History Server est l'un de ces outils. Pour afficher une exportation dans Spark History Server, pointez une instance vers le eventlog_v2_ répertoire de la requête. Par exemple, une exportation d'une requête 6ba7b810-9dad-11d1-80b4-00c04fd430c8 vers le bucket amzn-s3-demo-bucket avec le préfixe clé query-logs/ produit les résultats suivants.
s3://amzn-s3-demo-bucket/query-logs/ collaboration=f47ac10b-58cc-4372-a567-0e02b2c3d479/ analysis=6ba7b810-9dad-11d1-80b4-00c04fd430c8/ a1b2c3d4-e5f6-7890-abcd-ef1234567890/ eventlog_v2_6ba7b810-9dad-11d1-80b4-00c04fd430c8/ events_1_6ba7b810-9dad-11d1-80b4-00c04fd430c8 appstatus_6ba7b810-9dad-11d1-80b4-00c04fd430c8
Dans cet exemple, définissez le répertoire des journaux du Spark History Server comme suit. Le fait de pointer sur le eventlog_v2_ répertoire affiche uniquement la requête que vous avez exportée. La lecture des journaux directement depuis Amazon S3 nécessite le connecteur S3A, utilisez donc le s3a:// schéma. Les informations d'identification utilisées par Spark History Server nécessitent un accès en lecture au bucket.
spark.history.fs.logDirectory s3a://amzn-s3-demo-bucket/query-logs/collaboration=f47ac10b-58cc-4372-a567-0e02b2c3d479/analysis=6ba7b810-9dad-11d1-80b4-00c04fd430c8/a1b2c3d4-e5f6-7890-abcd-ef1234567890/eventlog_v2_6ba7b810-9dad-11d1-80b4-00c04fd430c8/
Utilisez la version 3.5.0 ou ultérieure de Spark History Server. Vous êtes responsable de la configuration et de l'exécution de votre propre instance. Pour plus d'informations sur l'exécution d'une instance de Spark History Server, consultez la section Affichage après coup
Résolution des problèmes d'exportation du journal
- La demande échoue car vous n'êtes pas autorisé à exporter les journaux
-
Votre abonnement n'en a pas la
CAN_EXPORT_QUERY_ANALYSIS_LOGcapacité. Un membre de la collaboration doit soumettre une demande de modification pour ajouter la capacité, et tous les membres doivent l'approuver. Pour de plus amples informations, veuillez consulter Mettre à jour les capacités des membres. - La demande échoue car le bucket ne peut pas être écrit dans
-
Vérifiez que le bucket existe, qu'il se trouve dans le même compartiment Région AWS que la collaboration et que vous êtes autorisé à y écrire. Si la politique de compartiment refuse
s3:PutObjectou restreint les écritures vers un point de terminaison VPC spécifique, AWS Clean Rooms impossible d'écrire dans le compartiment.Si le bucket utilise SSE-KMS une clé gérée par le client, cette erreur peut également signifier que vous n'êtes pas autorisé à utiliser cette clé. Vérifiez que la politique relative aux touches vous autorise à appeler
kms:GenerateDataKeyetkms:Decryptvia Amazon S3. - L'exportation échoue car la requête n'a jamais été exécutée
-
La requête a atteint l'état terminal sans être exécutée sur Spark. Aucun journal n'a donc été généré. Cela se produit lorsqu'une requête échoue à être validée ou est annulée avant de démarrer. L'exportation échoue avec un code d'erreur
LOGS_NOT_AVAILABLEet un message signalant qu'aucun journal d'exécution de requête n'est disponible pour la requête. Il n'y a rien à exporter. - La demande échoue car elle a été exécutée avant que l'exportation du journal ne soit disponible
-
Les journaux rédigés sont produits pendant l'exécution d'une requête. Une requête exécutée avant que l'exportation du journal ne soit disponible n'en AWS Clean Rooms produisait aucune. Il n'y a donc rien à exporter. Pour obtenir des journaux pour la même analyse, exécutez à nouveau la requête et exportez les journaux pour la nouvelle exécution.
- La demande échoue car un quota a été dépassé
-
Vous avez atteint le nombre maximum d'exportations pouvant être en cours simultanément. Attendez la fin d'une exportation en cours, puis réessayez.
- L'exportation démarre mais échoue
-
La vérification initiale des autorisations confirme uniquement ceux qui AWS Clean Rooms peuvent écrire dans votre compartiment au moment où vous démarrez l'exportation. Si vos autorisations changent ou si les informations d'identification utilisées pour l'exportation sont révoquées pendant que l'exportation est en cours d'exécution, l'exportation échoue une fois démarrée. Appelez
GetAnalysisLogExportpour voir l'erreur, en résoudre la cause et démarrer une nouvelle exportation. - L'exportation échoue et signale une erreur interne
-
Une erreur interne peut signifier qu'aucun journal n'a été généré pour la requête. Vous pouvez réessayer l'exportation.
- Les journaux exportés semblent incomplets
-
Si la requête s'est terminée parce qu'un processus a manqué de mémoire, certaines sorties de journal sont peut-être manquantes, car les journaux conservés sur un hôte qui s'arrête brusquement ne sont pas récupérés. Les journaux déjà écrits sont toujours exportés.
- Il y a un
validationSuccessobjet de zéro octet dans le compartiment -
AWS Clean Rooms écrit cet objet avec le préfixe clé que vous avez spécifié, afin de vérifier qu'il peut écrire sur votre destination avant de démarrer une exportation. Il est distinct des journaux exportés, qui sont écrits dans le répertoire de l'exportation, et vous pouvez le supprimer. Terminez le préfixe de votre clé par une barre oblique afin que cet objet soit créé à l'intérieur du préfixe plutôt qu'à côté de celui-ci.
Considérations et restrictions
-
Vous pouvez exporter les journaux des requêtes SQL exécutées après le 11 août 2026. L'exportation de journaux ne prend pas en charge PySpark les tâches.
-
L'exportation du journal n'est pas prise en charge pour les requêtes dont la validation a échoué ou qui ont été annulées avant d'atteindre le
STARTEDstatut. -
L'exportation de journaux n'est pas prise en charge pour les requêtes qui utilisent la confidentialité différentielle. Pour de plus amples informations, veuillez consulter AWS Clean Rooms Confidentialité différentielle.
-
Le compartiment de destination pour l'exportation des journaux doit se trouver dans le même compartiment Région AWS que celui de la collaboration. Cross-Region l'exportation n'est pas prise en charge.
-
Il est de votre responsabilité de sécuriser le compartiment de destination pour l'exportation des journaux. Bloquez l'accès public au bucket et activez la journalisation des accès au serveur si vous avez besoin de savoir qui lit les journaux exportés.
-
AWS Clean Rooms n'accepte pas de AWS KMS clé pour l'exportation du journal. Les journaux exportés sont chiffrés à l'aide de la configuration de chiffrement par défaut du compartiment Amazon S3 de destination. Pour les chiffrer à l'aide d'une clé gérée par le client, configurez le chiffrement par défaut du bucket de manière à utiliser cette clé avant de les exporter.
-
L'exportation de journaux ne prend en charge que les requêtes qui ont atteint l'état du terminal :
SUCCESSFAILEDCANCELLED,, ouTIMED_OUT. -
Vous ne pouvez pas annuler une exportation une fois qu'elle a démarré.
Pour les quotas qui s'appliquent à l'exportation de journaux, y compris le nombre d'exportations pouvant être exécutées simultanément, voirQuotas pour AWS Clean Rooms.