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:
- Conta de serviço de tempo de conceção: Agente do serviço da API Cloud Data Fusion
- Conta de serviço do tempo de execução: Conta de serviço do Compute Engine
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:
- Leitor de contentores antigos de armazenamento (
roles/storage.legacyBucketReader
). Esta função predefinida contém a autorizaçãostorage.buckets.get
necessária. Visitante de objetos do Storage (
roles/storage.legacyBucketReader
). Esta função predefinida contém as seguintes autorizações necessárias:storage.objects.get
storage.objects.list
Configure o plug-in
- Aceda à interface Web do Cloud Data Fusion e clique em Studio.
- Verifique se a opção Data Pipeline - Batch está selecionada (e não Tempo Real).
- No menu Origem, clique em GCS. O nó do Cloud Storage é apresentado no seu pipeline.
- Para configurar a origem, aceda ao nó do Cloud Storage e clique em Propriedades.
Introduza as seguintes propriedades. Para ver uma lista completa, consulte as Propriedades.
- Introduza uma etiqueta para o nó do Cloud Storage, por exemplo,
Cloud Storage tables
. 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:
- Mantenha a opção Usar ligação desativada.
- No campo ID do projeto, mantenha o valor como deteção automática.
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:
- Ative a opção Usar ligação.
- Clique em Procurar associações.
Clique no nome da associação, por exemplo, Predefinição do Cloud Storage.
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.
No campo Nome de referência, introduza um nome a usar para a linhagem, por exemplo,
data-fusion-gcs-campaign
.No campo Caminho, introduza o caminho a partir do qual ler, por exemplo,
gs://BUCKET_PATH
.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
Opcional: para testar a conetividade, clique em Obter esquema.
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
.Opcional: no campo Substituir, introduza os nomes das colunas e os respetivos tipos de dados a ignorar.
Opcional: introduza Propriedades avançadas, como um tamanho de divisão mínimo ou um filtro de caminho de expressão regular (consulte Propriedades).
Opcional: no campo Nome do contentor temporário, introduza um nome para o contentor do Cloud Storage.
- Introduza uma etiqueta para o nó do Cloud Storage, por exemplo,
Opcional: clique em Validar e resolva os erros encontrados.
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 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:
|
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?
- Saiba mais sobre os plug-ins no Cloud Data Fusion.