Com o plug-in de origem em lote do Cloud Storage, é possível ler dados de buckets do Cloud Storage e trazê-los para o Cloud Data Fusion para mais processamento e transformação. Ele permite carregar dados de vários formatos de arquivo, incluindo:
- Estruturados: CSV, Avro, Parquet e ORC
- Semiestruturado: JSON, XML
- Outros: texto, binário
Antes de começar
O Cloud Data Fusion normalmente tem duas contas de serviço:
- Conta de serviço do tempo de design: agente de serviço da API Cloud Data Fusion
- Conta de serviço do ambiente de execução: conta de serviço do Compute Engine
Antes de usar o plug-in de origem em lote do Cloud Storage, conceda o papel ou as permissões a seguir a 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 permissões.
Conta de serviço do Compute Engine
No projeto do Google Cloud, conceda os seguintes papéis ou permissões do IAM à 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 permissões necessárias a seguir: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 em Tempo real).
- No menu Origem, clique em GCS. O nó do Cloud Storage aparece no pipeline.
- Para configurar a origem, acesse o nó do Cloud Storage e clique em Propriedades.
Insira as seguintes propriedades. Para ver uma lista completa, consulte Propriedades.
- Insira um Rótulo para o nó do Cloud Storage, por
exemplo,
Cloud Storage tables
. Digite os detalhes da conexão. É possível configurar uma conexão única ou uma atual 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 Caminho do 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, Cloud Storage Default.
Opcional: se não houver uma conexão e você quiser criar uma nova conexão reutilizável, clique em Adicionar conexão e consulte as etapas na guia Nova conexão nesta página.
No campo Nome de referência, insira um nome a ser usado para a linhagem, por exemplo,
data-fusion-gcs-campaign
.No campo Caminho, insira o caminho de onde a leitura será feita, 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 requer um esquema que contenha um campo chamado corpo de bytes do tipo)
- csv
- delimitado
- json
- parquet
- text (o formato de texto requer um esquema que contenha um campo chamado corpo do tipo string)
- tsv (em inglês)
- O nome de qualquer plug-in de formato que você implantou no seu ambiente
Opcional: para testar a conectividade, clique em Acessar esquema.
Opcional: no campo Tamanho da amostra, insira o máximo de linhas para verificar 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 as 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.
- Insira um Rótulo para o nó do Cloud Storage, por
exemplo,
Opcional: clique em Validar e corrija os erros encontrados.
Clique em Fechar. As propriedades são salvas e você pode continuar criando seu pipeline de dados no Cloud Data Fusion Studio.
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 você procura conexões, 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 será exibido nesse campo. |
ID do projeto | Sim | Não | Usado somente quando a opção Usar conexão está desativada. Um identificador globalmente exclusivo para o projeto. O padrão é auto-detect . |
Tipo de conta de serviço | Sim | Não | Selecione uma destas 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 path. 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 Dataproc,
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 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 fonte para outros serviços, como linhagem 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,
use um asterisco (* ) como caractere curinga. Se nenhum arquivo for encontrado ou correspondente, o pipeline falhará. |
Formato | Não | Sim | Formato dos dados a serem lidos. O formato precisa ser um destes:
|
Tamanho da amostra | Sim | Não | O número máximo de linhas investigadas para detecção automática do tipo de dados. 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 for delimitado. Essa propriedade é ignorada para outros formatos. |
Ativar valores entre aspas | Sim | Não | Define se o conteúdo entre aspas será tratado como um valor. Essa propriedade é usada apenas nos formatos csv, tsv ou delimitados. Por exemplo, se esta propriedade for definida como verdadeira, os resultados a seguir serão 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 ficar entre aspas.O plug-in presume que as aspas estão delimitadas corretamente, por exemplo, "a, b, c" . Não fechar uma cotaçã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 deve ser usada como cabeçalho da coluna. Os formatos compatíveis 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 que os caminhos do arquivo precisam corresponder para serem incluídos na entrada. O caminho completo é comparado, não apenas o nome do arquivo. Se nenhum arquivo for fornecido, a filtragem de arquivos não será realizada. Para mais informações sobre a sintaxe da expressão regular, consulte Padrão. |
Campo "Caminho" | Sim | Não | Campo de saída para colocar o caminho do arquivo em que o registro foi lido. 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 de arquivo do caminho | Sim | Não | Se uma propriedade de campo de caminho for definida, use somente 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 recursivamente do caminho. O padrão é Falso. |
Permitir uma entrada vazia | Sim | Não | Define se um caminho de entrada que não contém dados será permitido. Quando definido como False, o plug-in apresentará um erro quando não houver dados a serem lidos. 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 estão criptografados. Para mais informações, acesse
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 | Outras propriedades a serem usadas com o InputFormat ao ler os dados. |
Codificação de arquivos | Sim | Não | Codificação de caracteres dos arquivos a serem lidos. O padrão é UTF-8. |
Esquema de saída | Sim | Não | Se uma propriedade de campo de caminho for definida, ela precisará estar presente no esquema como uma string. |
Criptografia de arquivos de dados
Nesta seção, descrevemos a propriedade de
criptografia do arquivo de dados. Se você configurá-lo como true, os arquivos serão descriptografados
usando o AEAD de streaming fornecido pela
biblioteca Tink (em inglês). Cada arquivo de dados
precisa ser acompanhado de um arquivo de metadados que contenha as informações de
criptografia. Por exemplo, um arquivo de dados criptografados em
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 extras codificados em Base64 usados na criptografia. |
key set |
Um objeto JSON que representa as informações do conjunto de chaves serializado 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
A seguir
- Saiba mais sobre plug-ins no Cloud Data Fusion.