Produtos de dados¶
Um produto de dados é um conjunto nomeado e possuído de tabelas publicadas juntas para consumo. É a unidade que o catálogo expõe aos consumidores: um conjunto curado de tabelas que um domínio declarou pronto. Os campos seguem o vocabulário do ODPS (Open Data Product Standard) onde o Provisa já detém a fonte da verdade.
Regra de propriedade de domínio¶
Todo produto de dados é possuído por exatamente um domínio (domain_id é um campo obrigatório). Uma tabela pode integrar um produto de dados somente quando ambos compartilham o mesmo domain_id. A interface do usuário delimita o seletor de tabelas ao domínio do produto; o backend rejeita uma atribuição de product_id cujo domínio não corresponda ao do produto no momento de salvamento.
Um produto que necessite de dados de outro domínio deve importá-los como uma view de domínio primeiro e só então incluir a view como membro.
Portas de saída¶
As tabelas e comandos atribuídos a um produto de dados são suas portas de saída: a superfície consultável que os consumidores veem. Atribuir uma tabela define Table.product_id; removê-la cancela a associação. Uma tabela pertence a no máximo um produto. Comandos do mesmo domínio também podem ser atribuídos como membros.
Seções do painel de detalhes¶
Ao abrir um produto de dados na interface de administração, são exibidos os seguintes painéis:
| Painel | O que exibe |
|---|---|
| Output Ports | Tabelas membro e suas colunas; comandos membros; consultas de exemplo (GraphQL, SQL, Cypher, gRPC, JSON:API, REST) |
| Related Terms | Termos do glossário vinculados às tabelas membro do produto |
| Related Tables | Tabelas alcançáveis a partir das tabelas membro por meio de relacionamentos aprovados, mas ainda não integrantes do produto |
| Relationships | Relacionamentos aprovados entre as tabelas membro deste produto |
| Lineage | Grafo de linhagem de coluna mostrando as tabelas membro como o endpoint publicado mais toda tabela upstream. Exige a capability view_governance |
| Input Ports | Entradas a um salto → transformação → saídas derivadas da linhagem. Exige view_governance |
| Data Quality | Tabelas de verificação cujos contratos escaneiam as portas de saída deste produto; uma linha por verificação por execução. Inclui um modal de regras e exibição de tag PII |
Exportação de metadados¶
Por padrão, somente tabelas atribuídas a um produto são publicadas em catálogos externos. build_snapshot aplica um filtro data_products_only: tabelas não atribuídas são retidas, juntamente com suas arestas de relacionamento, arestas de linhagem e tags de governança. Fontes e domínios sempre são publicados independentemente.
Um produto sem membros exportados não é publicado. Uma listagem vazia afirmaria que um produto existe sem nada por trás dele.
Somente catálogos com um conceito nativo de produto de dados o publicam como entidade própria; os demais publicam as tabelas membro (já filtradas) sem agrupamento por produto:
| Catálogo | Publicado como |
|---|---|
| Snowflake Horizon | SHARE + listagem da organização (Data Product nativo); publish=false mantém como DRAFT, publish=true torna ativo. O dicionário de dados da listagem cobre cada membro e coluna; os cinco primeiros membros são destacados e colunas mascaradas ficam ocultas na pré-visualização |
| BigQuery Analytics Hub | Listagem do Analytics Hub (nativo) |
| OpenMetadata | Entidade DataProduct (nativo) |
| DataHub | Entidade URN nativa dataProduct com suas próprias propriedades/aspectos de propriedade |
| Collibra | Ativo do tipo de comunidade Data Product, relacionado às tabelas membro |
| Apache Atlas | Melhor esforço com typedef personalizado provisa_data_product — o Atlas não tem tipo nativo de produto de dados |
| Atlan | Melhor esforço com suposição de typedef personalizado DataProduct — o Atlan não tem tipo documentado e estável para este conceito |
| OpenLineage | Não é uma listagem — tabelas membro carregam uma faceta personalizada provisa_data_product nomeando o produto |
Campos¶
| Campo | Obrigatório | Notas |
|---|---|---|
id |
Sim | Identificador estável legível por máquina, ex. customer_360 |
domain_id |
Sim | Domínio proprietário; regra de associação aplicada contra este valor |
name |
Sim | Nome de exibição |
owner_role |
Não | Função responsável por este produto; distinta do steward do domínio |
team_role |
Não | Função cujos membros formam a equipe de trabalho do dia a dia; resolve para indivíduos |
purpose |
Não | O que este produto publica e por quê |
limitations |
Não | Restrições, ressalvas ou exclusões conhecidas |
usage |
Não | Como consumir este produto |
version |
Não | ex. 1.2.0 |
status |
Não | ex. proposed, active, deprecated, retired |
sla |
Não | Compromissos de nível de serviço; somente texto — um produto abrange múltiplas tabelas membro e um SLA estruturado não consegue nomear sem ambiguidade qual membro descreve |
support |
Não | Orientação de suporte em texto livre |
support_contact |
Não | Email ou URL; exigido pelos manifestos de listagem da organização do Snowflake Horizon Catalog |
publish |
Não | true para publicar listagens do Horizon Catalog imediatamente; novas listagens padrão como DRAFT |
custom_properties |
Não | Metadados arbitrários de chave-valor não cobertos pelos campos padrão |