Origem de lotes do BigQuery

Esta página fornece orientações sobre a configuração do plug-in de origem de lotes do BigQuery no Cloud Data Fusion.

O plug-in de origem do BigQuery permite-lhe estabelecer ligação e carregar dados de tabelas do BigQuery. Os dados de uma tabela do BigQuery são exportados para uma localização temporária no Cloud Storage e, em seguida, lidos para o pipeline a partir dessa localização.

Antes de começar

Normalmente, o Cloud Data Fusion tem duas contas de serviço:

Antes de usar o plug-in de origem em lote do BigQuery, conceda as seguintes funções ou autorizações a cada conta de serviço.

Agente de serviço da API Cloud Data Fusion

Esta conta de serviço já tem todas as autorizações necessárias e não precisa de adicionar autorizações adicionais. Como referência, tem as seguintes autorizações:

  • bigquery.datasets.get
  • bigquery.tables.create
  • bigquery.tables.get
  • bigquery.tables.updateData
  • bigquery.tables.update
  • bigquery.tables.export

Se estiver a usar uma conta de serviço de espaço de nomes, além da conta de serviço de tempo de design predefinida, adicione-lhe as autorizações da lista anterior.

Conta de serviço do Compute Engine

No seu Google Cloud projeto, conceda as seguintes funções ou autorizações do IAM à conta de serviço do Compute Engine:

  • Utilizador de tarefas do BigQuery (roles/bigquery.jobUser). Esta função predefinida contém a autorização bigquery.jobs.create necessária.
  • Editor de dados do BigQuery (roles/bigquery.dataEditor). Esta função predefinida contém as seguintes autorizações necessárias:

    • bigquery.datasets.get
    • bigquery.tables.create
    • bigquery.tables.get
    • bigquery.tables.updateData
    • bigquery.tables.update
    • bigquery.tables.export

Estas funções e autorizações também podem ser atribuídas no conjunto de dados ou na tabela do BigQuery, consoante o seu exemplo de utilização.

  • Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter). Esta função predefinida contém as seguintes autorizações necessárias:

    • storage.buckets.get
    • storage.objects.get
    • storage.objects.list

Esta função e estas autorizações também podem ser atribuídas no contentor do Cloud Storage, consoante o seu exemplo de utilização.

Configure o plug-in

  1. Aceda à interface Web do Cloud Data Fusion e clique em Studio.
  2. Verifique se a opção Data Pipeline - Batch está selecionada (e não Tempo Real).
  3. No menu Origem, clique em BigQuery. O nó do BigQuery é apresentado no pipeline.
  4. Para configurar a origem, aceda ao nó do BigQuery e clique em Propriedades.
  5. Introduza as seguintes propriedades. Para ver uma lista completa, consulte as Propriedades.

    1. Introduza uma Etiqueta para o nó do BigQuery, por exemplo, BigQuery tables.
    2. Introduza os detalhes da associação. Pode configurar uma nova associação única ou uma associação existente reutilizável.

      Nova associação

      Para adicionar uma ligação única ao BigQuery, siga estes passos:

      1. No campo ID do projeto, mantenha o valor como deteção automática.
      2. Se o conjunto de dados do BigQuery estiver num projeto diferente, no campo ID do projeto do conjunto de dados, introduza o ID.
      3. No campo Tipo de conta de serviço, escolha uma das seguintes opções e introduza o conteúdo no campo seguinte:

        • Caminho do ficheiro
        • JSON

      Ligação reutilizável

      Para reutilizar uma associação existente, siga estes passos:

      1. Ative a opção Usar ligação.
      2. Clique em Procurar associações.
      3. Clique no nome da associação, por exemplo, BigQuery predefinido.

      4. Opcional: se não existir uma associação e quiser criar uma nova associação reutilizável, clique em Adicionar associação e consulte os passos no separador Nova associação nesta página.

    3. No campo Nome de referência, introduza um nome a usar para a linhagem.

    4. Opcional: se o conjunto de dados já estiver disponível na sua instância, clique em Procurar e selecione os dados a ler.

    5. No campo Conjunto de dados, introduza o nome do conjunto de dados que contém a tabela.

    6. No campo Tabela, introduza o nome da tabela.

    7. Para testar a conetividade, clique em Obter esquema.

    8. Opcional: no campo Data de início da partição, introduza a string de data de início inclusiva, por exemplo, 2021-01-11.

    9. Opcional: no campo Data de fim da partição, introduza a string de data de fim inclusiva, por exemplo, 2024-01-11.

    10. Opcional: no campo Filtro, introduza uma cláusulaWHERE do BigQuery.

    11. Opcional: no campo Nome do contentor temporário, introduza um nome para o contentor do Cloud Storage.

    12. Opcional: no campo Nome da chave de encriptação, introduza o nome da chave de encriptação do Cloud Key Management Service (Cloud KMS). Para mais informações, consulte o artigo Obtenha o nome do recurso para a chave.

    13. Opcional: ative a opção Ativar consulta de vistas. Se as ativar, faça o seguinte:

      • No campo Projeto de criação de tabelas temporárias, introduza o nome do projeto onde a tabela temporária é criada.
      • No campo Conjunto de dados de criação de tabelas temporárias, introduza o nome do conjunto de dados onde a tabela temporária é criada.
    14. Opcional: clique em Validar e resolva os erros encontrados.

    15. Clique em Fechar. As propriedades são guardadas e pode continuar a criar o seu pipeline de dados na interface Web do Cloud Data Fusion.

Propriedades

Propriedade O modo macro está ativado Propriedade obrigatória Descrição
Etiqueta Não Sim O nome do nó no pipeline de dados.
Usar ligação Não Não Procure uma associação reutilizável à origem. Para mais informações sobre como adicionar, importar e editar as associações que aparecem quando procura associações, consulte o artigo Faça a gestão das associações.
Ligação Sim Sim Se a opção Usar associação estiver ativada, o nome da associação reutilizável que selecionar aparece neste campo.
ID do projeto Sim Não Usado apenas quando a opção Usar ligação está desativada. Um identificador globalmente exclusivo para o projeto onde a tarefa do BigQuery é executada.
O valor predefinido é auto-detect.
ID do projeto do conjunto de dados Sim Não Usado apenas quando a opção Usar ligação está desativada. Se o conjunto de dados estiver num projeto diferente daquele em que a tarefa do BigQuery é executada, este valor é o identificador globalmente único do projeto com o conjunto de dados do BigQuery. Se não for indicado nenhum valor, o campo assume o valor predefinido do ID do projeto. A função de visualizador de dados do BigQuery tem de ser concedida à conta de serviço especificada para ler dados do BigQuery no projeto.
Tipo de conta de serviço Sim Não Selecione uma das seguintes opções:
  • Caminho do ficheiro: o caminho onde a conta de serviço está localizada.
  • JSON: conteúdo JSON da conta de serviço.
Caminho do ficheiro da conta de serviço Sim Não Usado apenas quando o valor do tipo de conta de serviço é Caminho do ficheiro. O caminho no sistema de ficheiros local da chave da conta de serviço usada para autorização. Se os trabalhos forem executados em clusters do Dataproc, defina o valor como deteção automática. Se as tarefas forem executadas noutros tipos de clusters, o ficheiro tem de estar presente em todos os nós do cluster.
A predefinição é auto-detect.
JSON da conta de serviço Sim Não Usado apenas quando o valor do tipo de conta de serviço é JSON. O conteúdo do ficheiro JSON da conta de serviço.
Nome de referência Não Sim Nome que identifica exclusivamente esta origem para outros serviços, como a linhagem e a anotação de metadados.
Conjunto de dados Sim Sim O conjunto de dados ao qual a tabela pertence. Um conjunto de dados está contido num projeto específico. Os conjuntos de dados são contentores de nível superior que organizam e controlam o acesso a tabelas e vistas.
Tabela Sim Sim A tabela a partir da qual ler. Uma tabela contém registos individuais organizados em linhas. Cada registo é composto por colunas (também denominadas campos). Todas as tabelas são definidas por um esquema que descreve os nomes das colunas, os tipos de dados e outras informações.
Data de início da partição Sim Não Data de início da partição inclusiva, especificada como yyyy-mm-dd. Se não for indicado nenhum valor, são lidas todas as partições até à data de fim da partição.
Data de fim da partição Sim Não Data de fim da partição exclusiva, especificada como yyyy-mm-dd. Se não for indicado nenhum valor, são lidas todas as partições a partir da data de início da partição.
Filtro Sim Não Uma consulta SQL que filtra as condições indicadas. Por exemplo, esta consulta devolve todas as linhas da tabela Roster em que a coluna SchoolID tem o valor SchoolID > 52:
SELECT * FROM Roster WHERE SchoolID > 52;. Isto é o mesmo que a cláusula WHERE no BigQuery.
Nome do segmento temporário Sim Não O contentor do Cloud Storage para armazenamento de dados temporários. É criado automaticamente se não existir. Os dados temporários são eliminados após serem lidos. Se não for fornecido um nome, é criado um contentor único e, em seguida, eliminado após a conclusão da execução.
Nome da chave de encriptação Sim Não Chave que encripta os dados escritos em qualquer contentor criado pelo plug-in. Se o recipiente existir, este valor é ignorado. Para mais informações, consulte o artigo CMEK.
Ative a consulta de visualizações Sim Não Se deve permitir vistas lógicas e materializadas do BigQuery. Uma vez que as vistas do BigQuery não estão ativadas por predefinição, a consulta das mesmas pode ter um custo de desempenho.
A predefinição é Não.
Projeto de criação de tabelas temporárias Sim Não Usado apenas quando a opção Ativar consultas de visualizações está ativada. O nome do projeto onde a tabela temporária deve ser criada. A predefinição é o mesmo projeto em que a tabela se encontra.
Conjunto de dados de criação de tabelas temporárias Sim Não O conjunto de dados no projeto especificado onde a tabela temporária deve ser criada. Predefinição para o mesmo conjunto de dados em que a tabela se encontra.
Esquema de saída Sim Sim Esquema da tabela a ler. Pode obtê-lo clicando em Obter esquema.

Mapeamentos de tipos de dados

A tabela seguinte é uma lista de tipos de dados do BigQuery com os tipos de dados do CDAP correspondentes.

Tipo de dados do BigQuery Tipo de dados do esquema CDAP
BOOL boolean
BYTES bytes
DATE date
DATETIME datetime, string
FLOAT64 double
GEO unsupported
INT64 long
NUMERIC decimal
BIGNUMERIC decimal
REPEATED array
STRING string, datetime (formato ISO 8601)
STRUCT record
TIME time (microssegundos)
TIMESTAMP timestamp (microssegundos)
JSON unsupported

O que se segue?