Para integrar suas fontes de dados personalizadas, chame APIs do Data Catalog que permitam criar e gerenciar entradas do Data Catalog com tipos de recursos de dados personalizados. Neste documento, uma entrada para um tipo de recurso de dados personalizado é chamada de "entrada personalizada".
Criar grupos de entradas e entradas personalizadas
As entradas personalizadas devem ser inseridas em um grupo de entrada criado pelo usuário. Você cria o grupo de entradas e cria a entrada personalizada no grupo de entrada. Para mais informações, consulte Entradas e grupos de entradas.
Depois de criar uma entrada, você pode definir políticas do IAM no grupo de entrada para definir quem tem acesso ao grupo de entrada e às entradas nele.
Java
Antes de testar esta amostra, siga as instruções de configuração do Java no Guia de início rápido do Data Catalog usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Data Catalog Java (em inglês).
Para autenticar no Data Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Antes de testar esta amostra, siga as instruções de configuração do Node.js no Guia de início rápido do Data Catalog usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Data Catalog Node.js (em inglês).
Para autenticar no Data Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar esta amostra, siga as instruções de configuração do Python no Guia de início rápido do Data Catalog usando bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Data Catalog Python (em inglês).
Para autenticar no Data Catalog, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST e LINHA DE CMD
REST
Veja os exemplos a seguir e consulte a documentação da API REST Data Exchange entryGroups.create e entryGroups.entries.create.
1. Criar um grupo de entrada
Antes de usar os dados da solicitação, faça as substituições a seguir:
- project-id: é o ID do projeto do Google Cloud.
- entryGroupId: o ID precisa começar com uma letra ou um sublinhado, conter apenas letras, números e sublinhados em inglês e ter no máximo 64 caracteres.
- displayName: o nome textual do grupo de entrada.
Método HTTP e URL:
POST https://datacatalog.googleapis.com/v1/projects/project-id/locations/region/entryGroups?entryGroupId=entryGroupId
Corpo JSON da solicitação:
{ "displayName": "Entry Group display name" }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/my_projectid/locations/us-central1/entryGroups/my_entry_group", "displayName": "Entry Group display name", "dataCatalogTimestamps": { "createTime": "2019-10-19T16:35:50.135Z", "updateTime": "2019-10-19T16:35:50.135Z" } }
2. Criar uma entrada personalizada no grupo de entrada
Antes de usar os dados da solicitação, faça as substituições a seguir:
- project_id pelo ID do projeto do Google Cloud.
- entryGroupId: ID do entryGroup existente. A entrada será criada neste EntryGroup.
- entryId: ID da nova entrada. O ID deve começar com uma letra ou um sublinhado, conter somente letras, números e sublinhados ingleses e ter no máximo 64 caracteres.
- description: descrição da entrada opcional
- displayName: nome textual opcional para a entrada.
- userSpecifiedType: nome do tipo personalizado. O nome do tipo deve começar com uma letra ou um sublinhado, conter apenas letras, números e sublinhados e deve ter no máximo 64 caracteres.
- userSpecifiedSystem: o sistema de origem que não é do Google Cloud da entrada, que não é integrado ao Data Catalog. O nome do sistema de origem deve começar com uma letra ou um sublinhado, conter apenas letras, números e sublinhados e deve ter no máximo 64 caracteres.
- linkedResource: nome completo opcional do recurso ao qual a entrada se refere.
- schema: esquema de dados opcional.
Exemplo de esquema JSON:
{ ... "schema": { "columns": [ { "column": "first_name", "description": "First name", "mode": "REQUIRED", "type": "STRING" }, { "column": "last_name", "description": "Last name", "mode": "REQUIRED", "type": "STRING" }, { "column": "address", "description": "Address", "mode": "REPEATED", "subcolumns": [ { "column": "city", "description": "City", "mode": "NULLABLE", "type": "STRING" }, { "column": "state", "description": "State", "mode": "NULLABLE", "type": "STRING" } ], "type": "RECORD" } ] } ... }
Método HTTP e URL:
POST https://datacatalog.googleapis.com/v1/projects/project_id/locations/region/entryGroups/entryGroupId/entries?entryId=entryId
Corpo JSON da solicitação:
{ "description": "Description", "displayName": "Display name", "userSpecifiedType": "my_type", "userSpecifiedSystem": "my_system", "linkedResource": "example.com/def", "schema": { schema } }
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ "name": "projects/my_project_id/locations/us-central1/entryGroups/my_entryGroup_id/entries/my_entry_id", "userSpecifiedType": "my-type", "userSpecifiedSystem": "my_system", "displayName": "On-prem entry", "description": "My entry description.", "schema": { "columns": [ { "type": "STRING", "description": "First name", "mode": "REQUIRED", "column": "first_name" }, { "type": "STRING", "description": "Last name", "mode": "REQUIRED", "column": "last_name" }, { "type": "RECORD", "description": "Address", "mode": "REPEATED", "column": "address", "subcolumns": [ { "type": "STRING", "description": "City", "mode": "NULLABLE", "column": "city" }, { "type": "STRING", "description": "State", "mode": "NULLABLE", "column": "state" } ] } ] }, "sourceSystemTimestamps": { "createTime": "2019-10-23T23:11:26.326Z", "updateTime": "2019-10-23T23:11:26.326Z" }, "linkedResource": "example.com/def" }