Origem de lote do BigQuery

Nesta página, você encontra orientações sobre como configurar o plug-in de origem em lote do BigQuery no Cloud Data Fusion.

Com o plug-in de origem do BigQuery, é possível conectar e carregar dados de tabelas do BigQuery. Os dados de uma tabela do BigQuery são exportados para um local temporário no Cloud Storage e, em seguida, lidos no pipeline.

Antes de começar

O Cloud Data Fusion geralmente tem duas contas de serviço:

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

Agente de serviço da API Data Fusion

Essa conta de serviço já tem todas as permissões necessárias, e você não precisa adicionar outras. Para referência, ele tem as seguintes permissões:

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

Se você estiver usando uma conta de serviço de namespace além da conta de serviço padrão de tempo de design, adicione a ela as permissões da lista anterior.

Conta de serviço do Compute Engine

No seu projeto Google Cloud , conceda os seguintes papéis ou permissões do IAM à conta de serviço do Compute Engine:

  • Usuário de jobs do BigQuery (roles/bigquery.jobUser). Esse papel predefinido contém a permissão bigquery.jobs.create necessária.
  • Editor de dados do BigQuery (roles/bigquery.dataEditor). Esse papel predefinido contém as seguintes permissões necessárias:

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

Essas funções e permissões também podem ser atribuídas ao conjunto de dados ou à tabela do BigQuery, dependendo do seu caso de uso.

  • Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter). Esse papel predefinido contém as seguintes permissões necessárias:

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

Essa função e essas permissões também podem ser atribuídas no bucket do Cloud Storage, dependendo do seu caso de uso.

Configurar o plug-in

  1. Acesse a interface da Web do Cloud Data Fusion e clique em Studio.
  2. Verifique se Pipeline de dados – lote está selecionado (não Tempo real).
  3. No menu Origem, clique em BigQuery. O nó do BigQuery aparece no pipeline.
  4. Para configurar a origem, acesse o nó do BigQuery e clique em Propriedades.
  5. Insira as seguintes propriedades. Para uma lista completa, consulte Propriedades.

    1. Insira um rótulo para o nó do BigQuery. Por exemplo, BigQuery tables.
    2. Insira os detalhes da conexão. É possível configurar uma conexão única ou uma conexão reutilizável.

      Nova conexão

      Para adicionar uma conexão única ao BigQuery, siga estas etapas:

      1. No campo ID do projeto, deixe o valor como "Detecção automática".
      2. Se o conjunto de dados do BigQuery estiver em outro projeto, insira o ID no campo ID do projeto do conjunto de dados.
      3. No campo Tipo de conta de serviço, escolha uma das seguintes opções e insira o conteúdo no campo ao lado:

        • Caminho do arquivo
        • JSON

      Conexão reutilizável

      Para reutilizar uma conexão, siga estas etapas:

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

      4. Opcional: se uma conexão não existir e você quiser criar uma nova conexão reutilizável, clique em Adicionar conexão e consulte as etapas na guia Nova conexão desta página.

    3. No campo Nome de referência, insira um nome para usar na linhagem.

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

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

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

    7. Para testar a conectividade, clique em Usar esquema.

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

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

    10. Opcional: no campo Filtro, insira uma cláusula WHERE do BigQuery.

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

    12. Opcional: no campo Nome da chave de criptografia, insira o nome da chave de criptografia do Cloud Key Management Service (Cloud KMS). Para mais informações, consulte Receber o nome do recurso da chave.

    13. Opcional: ative a opção Ativar consultas de visualizações. Se você ativar, faça o seguinte:

      • No campo Projeto de criação de tabela temporária, insira o nome do projeto em que a tabela temporária é criada.
      • No campo Conjunto de dados de criação de tabela temporária, insira o nome do conjunto de dados em que a tabela temporária será criada.
    14. Opcional: clique em Validar e corrija os erros encontrados.

    15. Clique em Fechar. As propriedades são salvas, e você pode continuar criando seu pipeline de dados na interface da Web do Cloud Data Fusion.

Propriedades

Propriedade Ativada para macros Propriedade obrigatória Descrição
Rótulo Não Sim O nome do nó no pipeline de dados.
Usar conexão Não Não Procure uma conexão reutilizável com a origem. Para mais informações sobre como adicionar, importar e editar as conexões que aparecem quando você navega por elas, consulte Gerenciar conexões.
Conexão Sim Sim Se a opção Usar conexão estiver ativada, o nome da conexão reutilizável selecionada vai aparecer nesse campo.
ID do projeto Sim Não Usado apenas quando a opção Usar conexão está desativada. Um identificador globalmente exclusivo do projeto em que o job do BigQuery é executado.
O padrão é auto-detect.
ID do projeto do conjunto de dados Sim Não Usado apenas quando a opção Usar conexão está desativada. Se o conjunto de dados estiver em um projeto diferente daquele em que o job do BigQuery é executado, esse valor será o identificador globalmente exclusivo do projeto com o conjunto de dados do BigQuery. Se nenhum valor for fornecido, o campo vai usar o valor padrão do ID do projeto. O papel de leitor de dados do BigQuery precisa ser concedido à 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 arquivo: o caminho onde a conta de serviço está localizada.
  • JSON: conteúdo JSON da conta de serviço.
Em Service account file path, digite o caminho do arquivo da conta de serviço. Sim Não Usado somente quando o valor do tipo de conta de serviço é Caminho do arquivo. O caminho no sistema de arquivos local da chave da conta de serviço usada para autorização. Se os jobs forem executados em clusters do Serviço Gerenciado para Apache Spark, defina o valor como "detecção automática". Se os jobs forem executados em outros tipos de clusters, o arquivo precisará estar presente em todos os nós do cluster.
O padrã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 arquivo JSON da conta de serviço.
Nome de referência Não Sim Nome que identifica exclusivamente essa origem para outros serviços, como linhagem e anotação de metadados.
Conjunto de dados Sim Sim O conjunto de dados a que a tabela pertence. Um conjunto de dados fica contido em um projeto específico. Os conjuntos de dados são contêineres de nível superior que organizam e controlam o acesso a tabelas e visualizações.
Tabela Sim Sim A tabela de leitura. Uma tabela contém registros individuais organizados em linhas. Cada registro é formado por colunas, também chamadas de campos. Todas as tabelas são definidas por um esquema que descreve os nomes, tipos de dados e outras informações da coluna.
Data de início da partição Sim Não Data de início da partição inclusiva, especificada como yyyy-mm-dd. Se nenhum valor for fornecido, todas as partições até a data de término serão lidas.
Data de término da partição Sim Não Data de término da partição exclusiva, especificada como yyyy-mm-dd. Se nenhum valor for fornecido, todas as partições a partir da data de início da partição serão lidas.
Filtrar Sim Não Uma consulta SQL que filtra as condições especificadas. Por exemplo, esta consulta retorna todas as linhas da tabela Roster em que a coluna SchoolID tem o valor SchoolID > 52:
SELECT * FROM Roster WHERE SchoolID > 52;. Isso é o mesmo que a cláusula WHERE no BigQuery.
Nome do bucket temporário Sim Não O bucket do Cloud Storage para armazenamento temporário de dados. Ele é criado automaticamente se não existir. Os dados temporários são excluídos depois de serem lidos. Se um nome não for fornecido, um bucket exclusivo será criado e excluído após a conclusão da execução.
Nome da chave de criptografia Sim Não Chave que criptografa dados gravados em qualquer bucket criado pelo plug-in. Se o bucket existir, esse valor será ignorado. Para mais informações, consulte CMEK.
Ativar a consulta de visualizações Sim Não Se as visualizações lógicas e materializadas do BigQuery podem ser usadas. Como as visualizações do BigQuery não são ativadas por padrão, a consulta delas pode ter uma sobrecarga de desempenho.
O padrão é "Não".
Projeto de criação de tabelas temporárias Sim Não Usado somente quando a opção Ativar consultas de visualizações está ativada. O nome do projeto em que a tabela temporária será criada. O padrão é o mesmo projeto em que a tabela está.
Conjunto de dados de criação de tabela temporária Sim Não O conjunto de dados no projeto especificado em que a tabela temporária será criada. O padrão é o mesmo conjunto de dados em que a tabela está.
Esquema de saída Sim Sim Esquema da tabela a ser lida. Para fazer isso, clique em Usar esquema.

Mapeamentos de tipo de dados

A tabela a seguir é uma lista de tipos de dados do BigQuery com tipos correspondentes do CDAP.

Tipo de dados do BigQuery Tipo de dados do esquema do 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

A seguir