O plug-in de origem de lote do Cloud Storage permite ler dados de buckets do Cloud Storage e levá-los ao Cloud Data Fusion para processamento e transformação. Ele permite carregar dados de vários arquivos formatos, incluindo os seguintes:
- Estruturado: CSV, Avro, Parquet, ORC
- Semiestruturados: JSON, XML
- Outros: texto, binário
Antes de começar
O Cloud Data Fusion geralmente tem duas contas de serviço:
- Conta de serviço no tempo de design: Agente de serviço da API Cloud Data Fusion
- Conta de serviço de execução: Conta de serviço do Compute Engine
Antes de usar o plug-in de fonte em lote do Cloud Storage, conceda a os papéis a seguir para cada conta de serviço.
Agente de serviço da API Cloud Data Fusion
Essa conta de serviço já tem todas as permissões necessárias, e você não precisa adicionar outras.
Conta de serviço do Compute Engine
No projeto do Google Cloud, conceda os seguintes papéis do IAM ou à conta de serviço do Compute Engine:
- Leitor de bucket legado do Storage (
roles/storage.legacyBucketReader
). Esse papel predefinido contém a permissãostorage.buckets.get
necessária. Leitor de objetos do Storage (
roles/storage.legacyBucketReader
). Esse papel predefinido contém as seguintes permissões necessárias:storage.objects.get
storage.objects.list
Configurar o plug-in
- Acesse a interface da Web do Cloud Data Fusion e clique em Studio.
- Verifique se Pipeline de dados – lote está selecionado (não Tempo real).
- No menu Origem, clique em GCS. O nó do Cloud Storage no pipeline.
- Para configurar a origem, acesse o nó do Cloud Storage e clique em Propriedades:
Insira as propriedades a seguir. Para uma lista completa, consulte Propriedades:
- Digite um Rótulo para o nó do Cloud Storage:
exemplo:
Cloud Storage tables
. Insira os detalhes da conexão. É possível configurar uma nova conexão única ou uma conexão existente e reutilizável.
Nova conexão
Para adicionar uma conexão única ao Cloud Storage, siga estas etapas:
- Mantenha a opção Usar conexão desativada.
- No campo ID do projeto, deixe o valor como detecção automática.
No campo Tipo de conta de serviço, deixe o valor como Arquivo e o Caminho do arquivo da conta de serviço como detecção automática.
Conexão reutilizável
Para reutilizar uma conexão existente, siga estas etapas:
- Ative a opção Usar conexão.
- Clique em Procurar conexões.
Clique no nome da conexão. Por exemplo, Padrão do Cloud Storage.
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.
No campo Nome de referência, insira um nome a ser usado para linhagem, por exemplo,
data-fusion-gcs-campaign
.No campo Caminho, insira o caminho a ser lido, por exemplo,
gs://BUCKET_PATH
.No campo Formato, selecione um dos seguintes formatos de arquivo para os dados que estão sendo lidos:
- avro
- blob: o formato blob exige um esquema que contenha um campo chamado "body" do tipo bytes.
- csv
- delimitado
- json (link em inglês)
- Parquet
- text (o formato de texto requer um esquema que contenha um campo corpo nomeado do tipo string)
- tsv
- O nome de qualquer plug-in de formato que você implantou em seu meio ambiente
Opcional: para testar a conectividade, clique em Ver esquema.
Opcional: no campo Tamanho da amostra, digite o máximo de linhas a serem verificadas. para o tipo de dados selecionado, por exemplo,
1000
.Opcional: no campo Substituir, insira os nomes das colunas e os respectivos tipos de dados a serem ignorados.
Opcional: insira Propriedades avançadas, como um tamanho mínimo de divisão ou um filtro de caminho de expressão regular (consulte Propriedades).
Opcional: no campo Nome do bucket temporário, insira um nome para o bucket do Cloud Storage.
- Digite um Rótulo para o nó do Cloud Storage:
exemplo:
Opcional: clique em Validar e resolva os erros encontrados.
Clique em Fechar. As propriedades serão salvas, e você poderá continuar criando seu pipeline de dados no Studio do Cloud Data Fusion.
Propriedades
Propriedade | Macro ativada | 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 ao procurar conexões, consulte Gerenciar conexões. |
Conexão | Sim | Sim | Se a opção Usar conexão estiver ativada, o nome do reutilizável selecionada aparecerá neste campo. |
ID do projeto | Sim | Não | Usado apenas quando a opção Usar conexão está desativada. Um identificador globalmente
exclusivo do projeto. O padrão é auto-detect . |
Tipo de conta de serviço | Sim | Não | Selecione uma das seguintes opções:
|
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 é File (Arquivo)
caminho de conversão. O caminho no sistema de arquivos local da chave da conta de serviço
para autorização. Se os jobs forem executados em clusters do Dataproc,
defina o valor como detecção automática. Se os jobs forem executados em outros tipos de clusters,
precisa estar presente em todos os nós do cluster. O padrão é auto-detect . |
JSON da conta de serviço | Sim | Não | Usado somente 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 de dados e anotação de metadados. |
Caminho | Sim | Sim | Caminho para os arquivos a serem lidos. Se um diretório for especificado, encerre o
caminho com uma barra invertida (/ ). Por exemplo,
gs://bucket/path/to/directory/ . Para corresponder a um padrão de nome de arquivo,
é possível usar um asterisco (* ) como caractere curinga. Se nenhum arquivo for
forem encontrados ou correspondidos, o pipeline falhará. |
Formato | Não | Sim | Formato dos dados a serem lidos. O formato precisa ser um dos seguintes:
|
Tamanho da amostra | Sim | Não | O número máximo de linhas investigadas para dados automáticos detecção de tipo. O padrão é 1000. |
Substituir | Sim | Não | Uma lista de colunas com os dados correspondentes em que a detecção automática do tipo de dados é ignorada. |
Delimitador | Sim | Não | Delimitador a ser usado quando o formato é delimitado. Isso é ignorada em outros formatos. |
Ativar valores entre aspas | Sim | Não | Define se o conteúdo entre aspas será tratado como um valor. Esta propriedade é
usado apenas para os arquivos csv, tsv ou
delimitados. Por exemplo, se esta propriedade for definida como
verdadeiro, isso gera dois campos: 1, "a, b, c" .
O primeiro campo tem 1 como valor. A segunda tem
a, b, c . Os caracteres de aspas são cortados. O delimitador de
nova linha não pode estar entre aspas.O plug-in presume que as aspas estão corretamente entre as aspas, por exemplo, "a, b, c" . Não fechar uma citação ("a,b,c, ) causa
um erro.O valor padrão é False. |
Usar a primeira linha como cabeçalho | Sim | Não | Define se a primeira linha de cada arquivo será usada como cabeçalho da coluna. Os formatos aceitos são texto, csv, tsv e delimitado. O padrão é Falso. |
Tamanho mínimo da divisão | Sim | Não | Tamanho mínimo, em bytes, para cada partição de entrada. Partições menores
aumentam o nível de paralelismo, mas exigem mais recursos e sobrecarga.
Se o valor de Formato for blob , não será possível dividir
os dados. |
Tamanho máximo da divisão | Sim | Não | Tamanho máximo, em bytes, para cada partição de entrada. Partições menores
aumentam o nível de paralelismo, mas exigem mais recursos e sobrecarga.
Se o valor de Formato for blob , não será possível dividir
os dados.O padrão é 128 MB. |
Filtro de caminho regex | Sim | Não | Expressão regular à qual os caminhos do arquivo devem corresponder para serem incluídos no entrada. O caminho completo é comparado, não apenas o nome do arquivo. Se nenhum arquivo for fornecido, a filtragem de arquivos não será feita. Para mais informações sobre assinaturas a sintaxe da expressão, consulte Padrão. |
Campo de caminho | Sim | Não | Campo de saída para colocar o caminho do arquivo em que o registro foi lido se originou. Se não for especificado, o caminho não será incluído nos registros de saída. Se especificado, o campo precisa existir no esquema de saída como uma string. |
Somente o nome do arquivo do caminho | Sim | Não | Se uma propriedade campo de caminho estiver definida, use apenas o nome do arquivo, e não o URI do caminho. O padrão é Falso. |
Ler arquivos recursivamente | Sim | Não | Define se os arquivos serão lidos de forma recursiva no caminho. O padrão é False. |
Permitir entrada vazia | Sim | Não | Define se é permitido um caminho de entrada que não contém dados. Quando definido como
False, o plug-in apresentará um erro quando não houver dados para
ler. Quando definido como True, nenhum erro é gerado e nenhum registro é lido. O padrão é Falso. |
Arquivo de dados criptografado | Sim | Não | Se os arquivos são criptografados. Para mais informações, consulte
Criptografia de arquivos de dados. O padrão é Falso. |
Sufixo do arquivo de metadados de criptografia | Sim | Não | O sufixo do nome do arquivo de metadados de criptografia. O padrão é metadados. |
Propriedades do sistema de arquivos | Sim | Não | Propriedades adicionais para usar com o InputFormat ao ler os dados. |
Codificação de arquivos | Sim | Não | A codificação de caracteres dos arquivos a serem lidos. O padrão é UTF-8. |
Esquema de saída | Sim | Não | Se uma propriedade campo de caminho estiver definida, ela precisará estar presente no esquema como uma string. |
Criptografia de arquivos de dados
Esta seção descreve a criptografia de arquivos de dados
. Se você definir como true, os arquivos serão descriptografados
usando a AEAD de streaming fornecida pela
biblioteca do Tink. Cada arquivo de dados
precisa estar acompanhado de um arquivo de metadados que contenha o código;
informações imprecisas ou inadequadas. Por exemplo, um arquivo de dados criptografado
gs://BUCKET/PATH_TO_DIRECTORY/file1.csv.enc
precisa ter um arquivo de metadados em gs://BUCKET/
PATH_TO_DIRECTORY/file1.csv.enc.metadata
. O arquivo de metadados
contém um objeto JSON com as seguintes propriedades:
Propriedade | Descrição |
---|---|
kms |
O URI do Cloud Key Management Service usado para criptografar a chave de criptografia de dados. |
aad |
Os dados autenticados adicionais codificados em Base64 usados no criptografia. |
key set |
Um objeto JSON que representa as informações do conjunto de chaves serializado da biblioteca do 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
A seguir
- Saiba mais sobre plug-ins no Cloud Data Fusion.