Ce document explique comment utiliser une solution de création de rapports réglementaires pour le cloud et exécuter un pipeline de base. Il est destiné aux ingénieurs de données des institutions financières qui souhaitent se familiariser avec l'architecture et les bonnes pratiques permettant de produire des rapports réglementaires stables et fiables.
Dans ce tutoriel, vous allez établir un exemple fonctionnel de plate-forme de traitement de données réglementaires sur des ressources Google Cloud. L'exemple de plate-forme montre comment mettre en œuvre un pipeline de traitement de données qui garantit la qualité des données, la possibilité de réaliser des audits, la facilité de modification et de déploiement, et qui répond aux exigences suivantes en matière de rapports réglementaires :
- Ingestion de données à partir de la source
- Traitement de grands volumes de données précises
- Agrégation de données dans des rapports
Dans ce document, nous partons du principe que vous connaissez la version 1.1.7 de Terraform, la version 1.0.4 de DBT ("Data Build Tool", ou outil de création de données), Cloud Storage et BigQuery.
Objectifs
- Créer une infrastructure à partir d'un dépôt cloné.
- Charger des données fabriquées dans BigQuery.
- Extraire des métriques réglementaires à partir de données précises.
- Conteneuriser le pipeline d'extraction.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
-
Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Dans la console Google Cloud, activez Cloud Shell.
Préparer votre environnement
Dans Cloud Shell, spécifiez le projet que vous souhaitez utiliser pour ce tutoriel :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_ID
par l'ID du projet que vous avez sélectionné ou créé pour ce tutoriel.Si une boîte de dialogue s'affiche, cliquez sur Autoriser.
Spécifiez une région par défaut à utiliser pour la création d'infrastructures :
gcloud config set compute/region REGION
Créez et activez un environnement virtuel Python :
python -m venv reg-rpt-env source reg-rpt-env/bin/activate
Vous voyez que votre invite de ligne de commande porte le préfixe du nom de l'environnement virtuel.
Clonez le dépôt :
git clone \ "https://github.com/GoogleCloudPlatform/reg-reporting-blueprint"
Installez Terraform. Pour savoir comment effectuer cette installation, consultez la documentation HashiCorp.
Vérifiez l'installation.
Installez dbt :
pip3 install dbt-bigquery --upgrade
Vérifiez l'installation de dbt :
dbt --version
Les détails d'installation s'affichent.
Initialisez les variables d'environnement :
cd reg-reporting-blueprint && source environment-variables.sh
Exécutez le script d'installation :
cd common_components && ./setup_script.sh
Exécutez Terraform pour créer l'infrastructure requise :
cd orchestration/infrastructure/ terraform init -upgrade terraform plan terraform apply
Saisissez "yes" (oui) lorsque l'invite de confirmation s'affiche.
Pour vérifier qu'un bucket d'ingestion a bien été créé, accédez à la page Cloud Storage dans la console Google Cloud et recherchez un bucket portant un nom semblable à la valeur
PROJECT ID
.Accédez à la page BigQuery et vérifiez que les ensembles de données suivants ont bien été créés :
homeloan_dev homeloan_data homeloan_expectedresults
Importer les exemples de données
Dans cette section, vous allez explorer le contenu des dossiers data
et data_load
du dépôt, et charger des exemples de données dans BigQuery.
Dans l'instance de l'éditeur Cloud Shell, accédez au dossier
data
du dépôt :cd ../../../use_cases/examples/home_loan_delinquency/data/
Ce dossier contient deux sous-dossiers nommés
input
etexpected
.Inspectez le contenu du dossier
input
. Ce dossier contient des fichiers CSV avec des exemples de données d'entrée. Ces exemples de données ne sont fournis qu'à des fins de test.Inspectez le contenu du dossier
expected
. Ce dossier contient les fichiers CSV spécifiant les résultats attendus une fois les transformations appliquées.Ouvrez et inspectez le dossier
data_load/schema
, qui contient les fichiers spécifiant le schéma des données de préproduction :cd ../data_load
Les scripts de ce dossier permettent d'abord de charger les données dans Cloud Storage, puis dans BigQuery. Les données sont conformes au schéma attendu pour l'exemple de cas d'utilisation de pipeline de création de rapports réglementaires du présent tutoriel.
Chargez les données dans Cloud Storage :
./load_to_gcs.sh ../data/input ./load_to_gcs.sh ../data/expected
Les données sont maintenant disponibles dans votre bucket d'ingestion Cloud Storage.
Chargez les données du bucket d'ingestion Cloud Storage dans BigQuery :
./load_to_bq.sh
Pour vérifier que les données ont été chargées dans BigQuery, accédez à la page BigQuery dans la console Google Cloud, puis sélectionnez une table dans les ensembles de données
homeloan_data
ethomeloan_expectedresults
.Sélectionnez l'onglet Aperçu de chaque table et vérifiez que chaque table contient bien des données.
Exécuter le pipeline de rapports réglementaires
Dans votre environnement de développement, initialisez les dépendances de dbt :
cd ../dbt/ dbt deps
Toutes les dépendances dbt nécessaires seront installées dans votre projet dbt.
Testez la connexion entre votre installation dbt locale et vos ensembles de données BigQuery :
dbt debug
À la fin des informations de connectivité, de configuration et de dépendance renvoyées par la commande, vous devriez voir le message suivant :
All checks passed!
Dans le dossier
models
, ouvrez un fichier SQL et inspectez la logique des exemples de transformations de rapport mises en œuvre dans dbt.Exécutez les transformations de rapport pour créer les métriques de création de rapports réglementaires :
dbt run
Exécutez les transformations pour une date de votre choix :
dbt run --vars '{"reporting_day": "2021-09-03"}'
Notez les variables qui contrôlent l'exécution des transformations. La variable
reporting_day
indique la valeur de date que le portefeuille doit avoir. Lorsque vous exécutez la commandedbt run
, il est recommandé de fournir cette valeur.Dans la console Google Cloud, accédez à la page BigQuery et inspectez l'ensemble de données
homeloan_dev
. Notez comment les données ont été renseignées et comment la variablereporting_day
que vous avez transmise est utilisée dans le champcontrol.reporting_day
de la vuewh_denormalised
.Inspectez le fichier
models/schema.yml
:models: - <<: *src_current_accounts_attributes name: src_current_accounts_attributes columns: - name: ACCOUNT_KEY tests: - unique - not_null
Notez comment le fichier définit les définitions des colonnes et les tests de qualité des données associés. Par exemple, le champ
ACCOUNT_KEY
de la tablesrc_current_accounts_attributes
doit être unique et non nul.Exécutez les tests de qualité des données spécifiés dans les fichiers de configuration :
dbt test -s test_type:generic
Inspectez le code dans le dossier
use_cases/examples/home_loan_delinquency/dbt/tests
, qui contient les testssingular
. Notez que les tests de ce dossier mettent en œuvre une comparaison de table entre les résultats réels générés par la commandedbt run
et les résultats attendus enregistrés dans l'ensemble de donnéeshomeloan_expectedresults
.Exécutez les tests uniques :
dbt test -s test_type:singular
Générez la documentation du projet :
dbt docs generate && dbt docs serve
Dans le résultat affiché, recherchez le texte d'URL suivant, puis cliquez dessus :
http://127.0.0.1:8080
Votre navigateur ouvre un nouvel onglet qui affiche l'interface Web de documentation de base de données.
Examinez la traçabilité des modèles et leur documentation. Vous constaterez que la documentation inclut l'intégralité du code et de la documentation des modèles (comme spécifié dans les fichiers
models/schema.yml
).Dans Cloud Shell, saisissez la commande suivante :
Ctrl + c
Cloud Shell cesse d'héberger l'interface Web dbt.
Facultatif : Conteneuriser les transformations
Dans Cloud Shell, créez un conteneur pour l'étape de chargement des données BigQuery, puis transférez le conteneur vers Google Container Repository :
cd ../../../../ # the gcloud command should be executed from the root gcloud builds submit --config use_cases/examples/home_loan_delinquency/data_load/cloudbuild.yaml
Le fichier Dockerfile du répertoire
data_load
active la conteneurisation, ce qui simplifie l'orchestration du workflow.Conteneurisez le code pour l'étape de transformation des données et transférez le conteneur vers Container Registry :
gcloud builds submit --config use_cases/examples/home_loan_delinquency/dbt/cloudbuild.yaml
La conteneurisation vous aide à créer un package que vous pouvez versionner et déployer.
Récupérez le chemin d'accès de la page Airflow et du bucket Cloud Storage pour les DAG, puis stockez-les dans des variables d'environnement :
cd common_components/orchestration/infrastructure/ AIRFLOW_DAG_GCS=$(terraform output --raw airflow_dag_gcs_prefix) AIRFLOW_UI=$(terraform output --raw airflow_uri)
Importez le DAG de défaut de paiement prêt immobilier :
cd ../../../use_cases/examples/home_loan_delinquency/deploy/ gsutil cp run_homeloan_dag.py $AIRFLOW_DAG_GCS
Accédez à la page Airflow en exécutant la commande suivante pour récupérer l'interface utilisateur, puis en cliquant sur le lien :
echo $AIRFLOW_UI
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
- Dans la console Google Cloud, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Supprimer les ressources individuelles
Pour éviter des frais supplémentaires, supprimez les ressources individuelles utilisées dans ce tutoriel :
cd ../../../../common_components/orchestration/infrastructure/
terraform destroy
Étape suivante
- Découvrez d'autres solutions de service Google Cloud pour les services financiers.
- Pour découvrir d'autres architectures de référence, schémas et bonnes pratiques, consultez le Centre d'architecture cloud.