Origem de lotes do Cloud Storage

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

O plug-in de origem em lote do Cloud Storage permite-lhe ler dados de contentores do Cloud Storage e importá-los para o Cloud Data Fusion para processamento e transformação adicionais. Permite-lhe carregar dados de vários formatos de ficheiros, incluindo os seguintes:

  • Estruturados: CSV, Avro, Parquet, ORC
  • Semiestruturados: JSON, XML
  • Outros: texto, binário

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 Cloud Storage, conceda a função ou as autorizações seguintes 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.

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:

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 GCS. O nó do Cloud Storage é apresentado no seu pipeline.
  4. Para configurar a origem, aceda ao nó do Cloud Storage 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 Cloud Storage, por exemplo, Cloud Storage 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 Cloud Storage, siga estes passos:

      1. Mantenha a opção Usar ligação desativada.
      2. No campo ID do projeto, mantenha o valor como deteção automática.
      3. No campo Tipo de conta de serviço, mantenha o valor como Caminho do ficheiro e o Caminho do ficheiro da conta de serviço como deteção automática.

      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, Predefinição do Cloud Storage.

      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, por exemplo, data-fusion-gcs-campaign.

    4. No campo Caminho, introduza o caminho a partir do qual ler, por exemplo, gs://BUCKET_PATH.

    5. No campo Formato, selecione um dos seguintes formatos de ficheiro para os dados que estão a ser lidos:

      • avro
      • blob (o formato blob requer um esquema que contenha um campo denominado corpo do tipo bytes)
      • csv
      • delimitado
      • json
      • parquet
      • text (o formato de texto requer um esquema que contenha um campo denominado corpo do tipo string)
      • tsv
      • O nome de qualquer plug-in de formato que tenha implementado no seu ambiente
    6. Opcional: para testar a conetividade, clique em Obter esquema.

    7. Opcional: no campo Tamanho da amostra, introduza o número máximo de linhas a verificar para o tipo de dados selecionado, por exemplo, 1000.

    8. Opcional: no campo Substituir, introduza os nomes das colunas e os respetivos tipos de dados a ignorar.

    9. Opcional: introduza Propriedades avançadas, como um tamanho de divisão mínimo ou um filtro de caminho de expressão regular (consulte Propriedades).

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

  6. Opcional: clique em Validar e resolva os erros encontrados.

  7. Clique em Fechar. As propriedades são guardadas e pode continuar a criar o seu pipeline de dados no Cloud Data Fusion Studio.

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 único para o projeto.
A predefinição é auto-detect.
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.
Caminho Sim Sim Caminho para os ficheiros a serem lidos. Se for especificado um diretório, termine o caminho com uma barra invertida (/). Por exemplo, gs://bucket/path/to/directory/. Para fazer corresponder um padrão de nome de ficheiro, pode usar um asterisco (*) como caráter universal. Se não forem encontrados ou não existirem correspondências de ficheiros, o pipeline falha.
Formato Não Sim Formato dos dados a ler. O formato tem de ser um dos seguintes:
  • avro
  • blob (o formato blob requer um esquema que contenha um campo denominado body do tipo bytes)
  • csv
  • delimitado
  • json
  • parquet
  • text (o formato de texto requer um esquema que contenha um campo denominado corpo do tipo string)
  • tsv
  • O nome de qualquer plug-in de formato que tenha implementado no seu ambiente
  • Se o formato for uma macro, só é possível usar os formatos pré-criados
Tamanho da amostra Sim Não O número máximo de linhas que são investigadas para a deteção automática do tipo de dados. A predefinição é 1000.
Substituir Sim Não Uma lista de colunas com os dados correspondentes a partir dos quais a deteção automática do tipo de dados é ignorada.
Delimitador Sim Não Delimitador a usar quando o formato é delimitado. Esta propriedade é ignorada para outros formatos.
Ative os valores cotados Sim Não Se o conteúdo entre aspas deve ser tratado como um valor. Esta propriedade é usada apenas para os formatos csv, tsv ou delimitados. Por exemplo, se esta propriedade estiver definida como true, o resultado seguinte produz dois campos: 1, "a, b, c". O primeiro campo tem 1 como valor. O segundo tem a, b, c. Os carateres de aspas são cortados. O delimitador de nova linha não pode estar entre aspas.
O plug-in pressupõe que as aspas estão corretamente incluídas, por exemplo, "a, b, c". Não fechar as aspas ("a,b,c,) causa um erro.
O valor predefinido é False.
Usar a primeira linha como cabeçalho Sim Não Se deve usar a primeira linha de cada ficheiro como o cabeçalho da coluna. Os formatos suportados são texto, csv, tsv e delimitado.
A predefinição é False.
Tamanho mínimo da divisão Sim Não Tamanho mínimo, em bytes, para cada partição de entrada. As partições mais pequenas aumentam o nível de paralelismo, mas requerem mais recursos e sobrecarga.
Se o valor de Formato for blob, não pode dividir os dados.
Tamanho máximo da divisão Sim Não Tamanho máximo, em bytes, para cada partição de entrada. As partições mais pequenas aumentam o nível de paralelismo, mas requerem mais recursos e sobrecarga.
Se o valor de Formato for blob, não pode dividir os dados.
A predefinição é 128 MB.
Filtro de caminho de regex Sim Não Expressão regular com a qual os caminhos de ficheiros têm de corresponder para serem incluídos na entrada. É comparado o caminho completo e não apenas o nome do ficheiro. Se não for especificado nenhum ficheiro, não é aplicado nenhum filtro de ficheiros. Para mais informações sobre a sintaxe das expressões regulares, consulte Padrão.
Campo de caminho Sim Não Campo de saída para colocar o caminho do ficheiro a partir do qual o registo foi lido. Se não for especificado, o caminho não é incluído nos registos de saída. Se for especificado, o campo tem de existir no esquema de saída como uma string.
Apenas nome do ficheiro do caminho Sim Não Se estiver definida uma propriedade Campo de caminho, use apenas o nome do ficheiro e não o URI do caminho.
A predefinição é False.
Ler ficheiros recursivamente Sim Não Se os ficheiros devem ser lidos recursivamente a partir do caminho.
A predefinição é False.
Permitir entrada vazia Sim Não Se deve permitir um caminho de entrada que não contenha dados. Quando definida como False, o plug-in apresenta um erro quando não existem dados para ler. Quando definida como Verdadeiro, não é acionado nenhum erro e são lidos zero registos.
A predefinição é False.
Ficheiro de dados encriptado Sim Não Se os ficheiros estão encriptados. Para mais informações, consulte o artigo Encriptação de ficheiros de dados.
A predefinição é False.
Sufixo do ficheiro de metadados de encriptação Sim Não O sufixo do nome de ficheiro do ficheiro de metadados de encriptação.
O valor predefinido é metadata.
Propriedades do sistema de ficheiros Sim Não Propriedades adicionais a usar com o InputFormat ao ler os dados.
Codificação de ficheiros Sim Não A codificação de carateres dos ficheiros a ler.
A predefinição é UTF-8.
Esquema de saída Sim Não Se for definida uma propriedade campo de caminho, tem de estar presente no esquema como uma string.

Encriptação de ficheiros de dados

Esta secção descreve a propriedade Encriptação de ficheiros de dados. Se a definir como verdadeira, os ficheiros são desencriptados através do AEAD de streaming fornecido pela biblioteca Tink. Cada ficheiro de dados tem de ser acompanhado de um ficheiro de metadados que contenha as informações de cifragem. Por exemplo, um ficheiro de dados encriptado em gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc tem de ter um ficheiro de metadados em gs://BUCKET/ PATH_TO_DIRECTORY/file1.csv.enc.metadata. O ficheiro de metadados contém um objeto JSON com as seguintes propriedades:

Propriedade Descrição
kms O URI do Cloud Key Management Service que foi usado para encriptar a chave de encriptação de dados.
aad Os dados autenticados adicionais codificados em Base64 usados na encriptação.
key set Um objeto JSON que representa as informações do conjunto de chaves serializadas da biblioteca Tink.

Exemplo

    /* Counting example */
    {

      "kms": "gcp-kms://projects/my-key-project/locations/us-west1/keyRings/my-key-ring/cryptoKeys/mykey",

      "aad": "73iT4SUJBM24umXecCCf3A==",

      "keyset": {

          "keysetInfo": {

              "primaryKeyId": 602257784,

              "keyInfo": [{

                  "typeUrl": "type.googleapis.com/google.crypto.tink.AesGcmHkdfStreamingKey",

                  "outputPrefixType": "RAW",

                  "keyId": 602257784,

                  "status": "ENABLED"

              }]

          },

          "encryptedKeyset": "CiQAz5HH+nUA0Zuqnz4LCnBEVTHS72s/zwjpcnAMIPGpW6kxLggSrAEAcJKHmXeg8kfJ3GD4GuFeWDZzgGn3tfolk6Yf5d7rxKxDEChIMWJWGhWlDHbBW5B9HqWfKx2nQWSC+zjM8FLefVtPYrdJ8n6Eg8ksAnSyXmhN5LoIj6az3XBugtXvCCotQHrBuyoDY+j5ZH9J4tm/bzrLEjCdWAc+oAlhsUAV77jZhowJr6EBiyVuRVfcwLwiscWkQ9J7jjHc7ih9HKfnqAZmQ6iWP36OMrEn"

      }

    }
    

Notas de lançamento

O que se segue?