Dataplex é a plataforma de governança e gestão de dados do GCP. Centraliza catalogação, linhagem, qualidade, segurança e descoberta de dados distribuídos em GCS, BigQuery e outros sistemas.

É a peça central para implementar data mesh na GCP: permite que times donos de domínios gerenciem seus dados de forma autônoma com governança centralizada.

Conceitos principais

Lake, Zone e Asset (modelo legado, ainda disponível)

graph TD
    L[Lake] --> ZR["Zone Raw - GCS"]
    L --> ZC["Zone Curated - GCS e BQ"]
    L --> ZT["Zone Trusted - BQ"]
    ZC --> A1["gs://bucket-raw/"]
    ZC --> A2[projeto.dataset_curado]
    ZT --> A3[projeto.dataset_trusted]

Catalog (foco atual)

O Dataplex Universal Catalog é o substituto e evolução do Data Catalog legado. Centraliza:

  • Entries: qualquer recurso de dados (tabela BQ, bucket GCS, modelo ML)
  • Entry Groups: agrupamento lógico de entries
  • Tags e Tag Templates: metadados personalizados aplicados a qualquer entry
  • Linhagem: rastreia de onde os dados vieram e para onde foram

Data Quality

Dataplex inclui um engine de qualidade de dados nativo que roda checks diretamente no BigQuery ou GCS:

# Exemplo de spec de qualidade (YAML via API/Terraform)
rules:
  - column: email
    dimension: VALIDITY
    non_null_expectation: {}
  - column: valor
    dimension: VALIDITY
    range_expectation:
      min_value: "0"
      max_value: "1000000"
  - column: status
    dimension: VALIDITY
    set_expectation:
      values: ["ativo", "inativo", "pendente"]
  - dimension: COMPLETENESS
    threshold: 0.99
    non_null_expectation: {}
    column: cliente_id

Os resultados são salvos em uma tabela BigQuery configurável e podem alimentar alertas.

Linhagem de dados

O Dataplex captura linhagem automaticamente para operações no BigQuery (jobs SQL, COPY, LOAD) e pode receber linhagem customizada via API:

from google.cloud import lineage_v1
 
client = lineage_v1.LineageClient()
 
# Registrar evento de linhagem customizado
process = lineage_v1.Process(display_name="meu-pipeline-etl")
run     = lineage_v1.Run(display_name="execucao-2026-05-05")
event   = lineage_v1.LineageEvent(
    sources=[lineage_v1.EntityReference(fully_qualified_name="bigquery:projeto.raw.pedidos")],
    targets=[lineage_v1.EntityReference(fully_qualified_name="bigquery:projeto.trusted.pedidos")],
)

Tags e descoberta de metadados

from google.cloud import datacatalog_v1
 
client = datacatalog_v1.DataCatalogClient()
 
# Criar tag template
template = datacatalog_v1.TagTemplate()
template.fields["owner"] = datacatalog_v1.TagTemplateField(
    display_name="Dono do dado",
    type_=datacatalog_v1.FieldType(primitive_type="STRING"),
)
 
# Aplicar tag em uma tabela BigQuery
tag = datacatalog_v1.Tag()
tag.template = "projects/proj/locations/us/tagTemplates/meu_template"
tag.fields["owner"].string_value = "time-dados"

Dataplex vs ferramentas similares

Dataplexdbt (testes)Great Expectations
CatálogoSim (nativo GCP)NãoNão
LinhagemSim (automática BQ)Parcial (manifests)Não
QualidadeSim (nativo)Sim (testes SQL)Sim (Python)
Governança IAMSimNãoNão
Onde rodaGCPQualquer warehouseQualquer fonte

Integração com o ecossistema

  • BigQuery: linhagem automática, quality scans, tags em tabelas
  • Cloud Storage: discovery de arquivos, quality scans em Parquet/ORC/CSV
  • Cloud Composer: operadores DataplexCreateTaskOperator para agendar quality scans

Ver também: gcp | gcp-bigquery | gcp-cloud-storage | gcp-boas-praticas | data-lake-lakehouse | ferramentas-engenharia-dados