Analisar e extrair dados
Uma arquitetura de dados de vários estágios organiza os dados em níveis de qualidade progressivamente refinados: bronze, prata e ouro. Essa arquitetura oferece uma metodologia estruturada para transformar dados brutos em recursos limpos e confiáveis.
Este documento mostra como criar o nível bronze, em que você recebe dados de sistemas de origem externos. Esse nível oferece uma única fonte de verdade, garante a linhagem de dados completa e permite o reprocessamento de pipelines.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você não conhece o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em cenários reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
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
(
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
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
(
-
Instale a Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Receber dados brutos no Cloud Storage
Ingira dados brutos em uma camada de armazenamento inicial no Cloud Storage. Para simular a ingestão de dados, exporte um conjunto de dados público do BigQuery para um bucket do Cloud Storage. Esse processo imita um sistema externo que entrega arquivos de dados brutos a uma zona de destino.
Crie um bucket do Cloud Storage para servir como data lake. Crie-o na mesma região do cluster do Managed Service for Apache Spark para otimizar a performance.
gsutil mb -l REGION gs://BUCKET_NAME/Exporte a tabela
bigquery-public-data:samples.shakespearepara o bucket do Cloud Storage no formato CSV.bq extract \ --destination_format CSV \ "bigquery-public-data:samples.shakespeare" \ "gs://BUCKET_NAME/raw/shakespeare/shakespeare.csv"Esse comando inicia um job de exportação que grava o conteúdo da tabela no caminho especificado do Cloud Storage.
Ler dados brutos com o PySpark
Depois de receber os dados no Cloud Storage, use um job do PySpark em um cluster do Managed Service for Apache Spark para ler e analisar os dados. O Apache Spark interage com o Cloud Storage pelo conector do Cloud Storage, que permite usar o esquema de URI gs:// para ler e gravar dados.
Use o script do PySpark a seguir para criar uma SparkSession, configurá-la para acesso ao Cloud Storage e ler o arquivo CSV bruto em um 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()Execute o script como um job do Managed Service for Apache Spark para ingerir e analisar os dados brutos.
Padrões de ingestão de dados
O nível bronze pode oferecer suporte a vários padrões de ingestão além de uploads de arquivos em lote. O Managed Service for Apache Spark é um mecanismo versátil capaz de processar diversos cenários de ingestão.
Ingestão de streaming
Para fontes de dados contínuas, como dados de sensores de IoT ou registros de aplicativos, use um pipeline de streaming. É possível usar o Managed Service for Apache Spark para processar streams de alto volume de um serviço como o Pub/Sub ou o Apache Kafka e receber os dados no nível bronze.
Ingestão de banco de dados
Para manter o data lake sincronizado com bancos de dados operacionais, use a captura de dados alterados (CDC). Um job do Managed Service for Apache Spark pode se inscrever em um tópico do Pub/Sub que recebe eventos de mudança, processar o stream e aplicar as mudanças ao armazenamento de dados brutos no Cloud Storage.
A seguir
- Saiba mais sobre Managed Service for Apache Spark.
- Saiba mais sobre o conector do Cloud Storage.
- Conheça os conjuntos de dados públicos do BigQuery.