Pular para o conteúdo principal

Execute um contrato em cinco minutos.

Este início rápido mostra a forma ContractForge: instale o núcleo, adicione o adaptador para o tempo de execução de destino, valide o contrato e, em seguida, renderize ou execute por meio do adaptador.

1. Instale os pacotes​

Instale o core neutro de plataforma e o pacote do adaptador do runtime de destino:

pip install contractforge-core contractforge-databricks

Use o pacote correspondente para outros runtimes:

pip install contractforge-core contractforge-aws
pip install contractforge-core contractforge-snowflake
pip install contractforge-core contractforge-fabric
pip install contractforge-core contractforge-gcp

A entrega em runtime muda por plataforma. Databricks e Fabric normalmente podem instalar pelo PyPI no ambiente de job/notebook; AWS Glue deve receber wheels no S3; procedures Snowflake hospedadas usam imports ZIP preparados em stage; GCP BigQuery/Workflows executam artefatos nativos enquanto o adaptador roda na CLI ou no CI.

Veja Instalação para a matriz completa de pacotes e entrega em runtime.

2. Crie um contrato mínimo de ingestão​

source:
type: table
table: main.raw.orders
system: crm

target:
catalog: main
schema: bronze
table: b_orders

layer: bronze
mode: append
schema_policy: additive_only

quality_rules:
not_null: [order_id]
expressions:
- name: positive_amount
expression: amount >= 0
severity: abort

O destino canônico está sempre aninhado em target. Os metadados de propriedade de origem pertencem ao source.system, não como um campo de nível superior.

3. Valide com a CLI do core​

contractforge validate contracts/bronze/b_orders.ingestion.yaml

A etapa principal de validação verifica o formato do contrato, a semântica portátil e os campos que não devem vazar detalhes de implementação da plataforma no modelo semântico.

4. Planeje ou renderize com um adaptador​

Use o adaptador Databricks quando o destino de execução for Databricks:

from contractforge_databricks import render_databricks_contract

artifacts = render_databricks_contract("contracts/bronze/b_orders.ingestion.yaml")
print(artifacts.status)
print(sorted(artifacts.artifacts))

A renderização produz artefatos Databricks nativos, como SQL, Python, fragmentos de Asset Bundle e relatórios de revisão, quando aplicável.

Para AWS:

contractforge-aws render contracts/bronze/b_orders.ingestion.yaml --environment environments/prod.aws.yaml

A renderização produz scripts Glue Spark, definições de trabalho Glue, artefatos de revisão, evidências DDL e andaimes de infraestrutura.

5. Execute um pacote de contrato dividido em Databricks​

from contractforge_databricks import ingest_databricks_bundle

result = ingest_databricks_bundle(
"/Workspace/Shared/contracts/bronze/b_orders",
options={
"catalog": "main",
"schema": "ops",
},
)

display(result)

O caminho do pacote pode resolver:

b_orders.ingestion.yaml
b_orders.annotations.yaml
b_orders.operations.yaml
b_orders.access.yaml
b_orders.environment.yaml

Apenas a ingestão é necessária para mover dados. Os outros contratos tornam explícitos os metadados do catálogo, as operações, o acesso e as escolhas de ambiente.

6. Inspecione evidências​

No Databricks, o adaptador persiste o modelo de evidência principal nas tabelas de controle Delta:

SELECT
status,
target_table,
mode,
source_system,
source_connector,
rows_read,
rows_written,
rows_quarantined,
quality_status,
framework_version,
error_message
FROM main.ops.ctrl_ingestion_runs
ORDER BY started_at_utc DESC
LIMIT 20;

Outros adaptadores devem preservar os mesmos conceitos de evidência, mesmo quando sua implementação de persistência não for Delta.

7. Faça deploy no AWS Glue​

AWS usa um contrato de ambiente para selecionar a publicação do artefato S3, tarefa Glue configurações e o armazém Iceberg:

name: prod
adapter: aws
artifacts:
uri: s3://contractforge-artifacts/prod/orders/
include_contract_bundle: true
include_normalized_contract: true
parameters:
aws:
iceberg:
warehouse: s3://contractforge-warehouse/prod/
glue_job:
role_arn: arn:aws:iam::123456789012:role/ContractForgeGlueRole
contractforge-aws deploy contracts/bronze/b_orders.ingestion.yaml --environment environments/prod.aws.yaml

O adaptador renderiza artefatos, publica-os no S3 e cria ou atualiza o Trabalho Glue. Glue executa código nativo Spark/Iceberg; não analisa contrato YAML em tempo de execução.

8. Use referências lógicas de tabela​

Quando um contrato downstream lê uma tabela produzida por outro ContractForge contrato, use uma referência neutra:

source:
type: table
ref: bronze.b_products_jdbc

SQL embutido pode usar:

FROM {{ table_ref:silver.s_product_tags }}

Databricks, AWS, Snowflake, Fabric e GCP resolvem essas referências para seus modelos nativos de catálogo/tabela, mas a intenção do contrato permanece a mesma.

Próximos passos​