Explorer et extraire des données
Une architecture de données à plusieurs étapes organise les données en niveaux de qualité progressivement affinés : bronze, argent et or. Cette architecture fournit une méthodologie structurée pour transformer les données brutes en ressources propres et fiables.
Ce document vous explique comment créer le niveau Bronze, dans lequel vous déposez les données provenant de systèmes sources externes. Ce niveau fournit une source unique de vérité, assure une traçabilité complète des données et permet le retraitement des pipelines.
Avant de commencer
- Connectez-vous à votre compte Google Cloud . Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $de crédits sans frais pour exécuter, tester et déployer des charges de travail.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, BigQuery, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the following roles to the service account: Storage Object Admin, Dataproc Worker.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click Add another role and add each additional role.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Compute Engine, BigQuery, and Cloud Storage APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the following roles to the service account: Storage Object Admin, Dataproc Worker.
To grant a role, find the Select a role list, then select the role.
To grant additional roles, click Add another role and add each additional role.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
-
Installez la Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init
Déposer des données brutes dans Cloud Storage
Ingérez les données brutes dans une couche de stockage initiale dans Cloud Storage. Pour simuler l'ingestion de données, exportez un ensemble de données public de BigQuery vers un bucket Cloud Storage. Ce processus imite un système externe qui fournit des fichiers de données brutes à une zone de dépôt.
Créez un bucket Cloud Storage qui servira de lac de données. Créez-la dans la même région que votre cluster Managed Service pour Apache Spark afin d'optimiser les performances.
gsutil mb -l REGION gs://BUCKET_NAME/Exportez la table
bigquery-public-data:samples.shakespearevers votre bucket Cloud Storage au format CSV.bq extract \ --destination_format CSV \ "bigquery-public-data:samples.shakespeare" \ "gs://BUCKET_NAME/raw/shakespeare/shakespeare.csv"Cette commande lance un job d'exportation qui écrit le contenu de la table dans le chemin Cloud Storage spécifié.
Lire des données brutes avec PySpark
Une fois les données transférées dans Cloud Storage, utilisez un job PySpark sur un cluster Managed Service for Apache Spark pour les lire et les explorer. Apache Spark interagit avec Cloud Storage via le connecteur Cloud Storage, qui vous permet d'utiliser le schéma d'URI gs:// pour lire et écrire des données.
Utilisez le script PySpark suivant pour créer une SparkSession, la configurer pour l'accès à Cloud Storage et lire le fichier CSV brut dans un DataFrame.
from pyspark.sql import SparkSession # --- Configuration --- gcs_bucket = "BUCKET_NAME" raw_path = f"gs://{gcs_bucket}/raw/shakespeare/shakespeare.csv" # For local development only. service_account_key_path = "/path/to/your/service-account-key.json" # --- Spark Session Initialization --- spark = SparkSession.builder \ .appName("DataprocETL-RawIngestion") \ .config("spark.jars", "https://storage.googleapis.com/hadoop-lib/gcs/gcs-connector-hadoop3-latest.jar") \ .getOrCreate() # --- Authentication for local development --- # This step is not necessary when running on a Dataproc cluster # with the service account attached to the cluster VMs. spark.conf.set("google.cloud.auth.service.account.json.keyfile", service_account_key_path) # --- Read Raw Data from Cloud Storage --- # Read the raw CSV data into a DataFrame. # inferSchema=True scans the data to determine column types. raw_df = spark.read.csv(raw_path, header=True, inferSchema=True) # --- Initial Exploration --- print("Raw data count:", raw_df.count()) print("Schema:") raw_df.printSchema() print("Sample of raw data:") raw_df.show(10, truncate=False) # --- Stop Spark Session --- spark.stop()Exécutez le script en tant que job Managed Service pour Apache Spark afin d'ingérer et d'explorer les données brutes.
Schémas d'ingestion de données
Le niveau Bronze peut prendre en charge différents modèles d'ingestion au-delà des importations de fichiers par lot. Managed Service pour Apache Spark est un moteur polyvalent capable de gérer différents scénarios d'ingestion.
Ingestion en flux continu
Pour les sources de données continues telles que les données de capteurs IoT ou les journaux d'application, utilisez un pipeline de streaming. Vous pouvez utiliser Managed Service pour Apache Spark afin de traiter des flux à volume élevé provenant d'un service tel que Pub/Sub ou Apache Kafka, et d'intégrer les données au niveau Bronze.
Ingestion de bases de données
Pour que le lac de données reste synchronisé avec les bases de données opérationnelles, utilisez la capture des données modifiées (CDC, Change Data Capture). Un job Spark Managed Service pour Apache Spark peut s'abonner à un sujet Pub/Sub qui reçoit des événements de modification, traiter le flux et appliquer les modifications au datastore brut dans Cloud Storage.
Étapes suivantes
- En savoir plus sur Managed Service pour Apache Spark
- En savoir plus sur le connecteur Cloud Storage
- Explorez les ensembles de données publics BigQuery.