La commande edr send-report d’Elementary génère et télécharge le rapport HTML vers le stockage cloud en une seule étape, le rendant accessible aux parties prenantes, aux ingénieurs d’astreinte et à toute personne ayant besoin de visibilité sur la qualité des données. Elle accepte les mêmes flags que edr report pour contrôler le contenu du rapport, plus les identifiants cloud pour la destination.
AWS S3
edr send-report \ --aws-access-key-id $AWS_ACCESS_KEY_ID \ --aws-secret-access-key $AWS_SECRET_ACCESS_KEY \ --s3-bucket-name your-reports-bucket \ --bucket-file-path reports/elementary.html \ --update-bucket-website trueAvec --update-bucket-website true, S3 sert le fichier comme site web statique. L’URL suit ce pattern :
http://your-reports-bucket.s3-website-us-east-1.amazonaws.com/index.htmlLe bucket doit avoir l’hébergement de site web statique activé et une politique de bucket autorisant la lecture publique. Pour les outils internes où l’accès public est inapproprié, utilisez des URL pré-signées S3 ou configurez le bucket pour être accessible uniquement depuis votre VPC.
Google Cloud Storage
edr send-report \ --google-service-account-path /path/to/service-account.json \ --gcs-bucket-name your-reports-bucket \ --update-bucket-website trueAccès à l’adresse :
https://storage.googleapis.com/your-reports-bucket/index.htmlLe compte de service a besoin de storage.objectAdmin sur le bucket. Pour les environnements utilisant workload identity ou application default credentials plutôt qu’un fichier de compte de service, consultez la documentation d’Elementary pour les flags d’authentification alternatifs.
Azure Blob Storage
edr send-report \ --azure-container-name your-container \ --azure-connection-string $AZURE_CONNECTION_STRING \ --update-bucket-website trueAccès à l’adresse :
https://your-account.blob.core.windows.net/your-container/index.htmlAutomatisation en CI
Le rapport est le plus utile lorsqu’il se met à jour automatiquement après chaque exécution dbt, de sorte que l’équipe voit toujours l’état actuel de la qualité des données plutôt qu’un snapshot de la dernière exécution manuelle de la commande.
Dans GitHub Actions, ajoutez l’étape send-report dans votre pipeline dbt :
- name: Generate Elementary report run: | edr send-report \ --gcs-bucket-name ${{ secrets.REPORTS_BUCKET }} \ --google-service-account-path ./sa.jsonDans Airflow, ajoutez edr send-report comme tâche en aval de votre tâche dbt build. La dépendance garantit que le rapport n’est généré que si l’exécution dbt s’est terminée, et il reflète toujours l’état actuel.
La clé est le séquencement : edr send-report s’exécute après dbt build, pas avant. Puisque la commande lit depuis les tables d’entrepôt d’Elementary, l’exécuter avant le run dbt génèrerait un rapport basé sur les données de l’exécution précédente.
Considérations de contrôle d’accès
Les sites web statiques sur le stockage cloud sont publics par défaut dans la plupart des configurations. Pour les rapports de qualité des données en production qui peuvent exposer des échantillons de lignes en échec ou des métriques sensibles au plan d’affaires, configurez des restrictions d’accès appropriées à votre environnement. Les options incluent :
- Des politiques IAM au niveau du bucket restreignant l’accès aux plages IP de votre organisation
- Des proxies d’authentification devant le site statique
- L’utilisation d’URL pré-signées avec expiration, distribuées via Slack lorsque le rapport est généré
Si les PII sont une préoccupation, rappellez-vous que --disable-samples retire les échantillons de lignes en échec du rapport avant même qu’il soit généré, ce qui est plus simple que le contrôle d’accès et plus approprié lorsque la sensibilité réside dans les données elles-mêmes plutôt que dans les métriques.