Copiar dados do Google Cloud Storage usando Azure Data FactoryCopy data from Google Cloud Storage by using Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Este artigo descreve como copiar dados a partir do Google Cloud Storage (GCS).This article outlines how to copy data from Google Cloud Storage (GCS). Para saber mais sobre o Azure Data Factory, leia as artigo introdutório.To learn about Azure Data Factory, read the introductory article.

Funcionalidades com suporteSupported capabilities

Este conector de armazenamento doo Google Cloud Storage oferece suporte às seguintes atividades:This Google Cloud Storage connector is supported for the following activities:

Especificamente, esse conector do Google Cloud Storage dá suporte à cópia de arquivos como está ou à análise de arquivos com os formatos de arquivo e codecs de compactação com suporte.Specifically, this Google Cloud Storage connector supports copying files as is or parsing files with the supported file formats and compression codecs. Ele aproveita a interoperabilidade compatível com S3 de GCS.It takes advantage of GCS's S3-compatible interoperability.

Pré-requisitosPrerequisites

A configuração a seguir é necessária em sua conta de armazenamento do Google Cloud:The following setup is required on your Google Cloud Storage account:

  1. Permitir a interoperabilidade para sua conta do Google Cloud StorageEnable interoperability for your Google Cloud Storage account
  2. Defina o projeto padrão que contém os dados que você deseja copiar do Bucket de GCS de destino.Set the default project that contains the data you want to copy from the target GCS bucket.
  3. Crie uma conta de serviço e defina os níveis de permissões certos usando a nuvem IAM em GCP.Create a service account and define the right levels of permissions by using Cloud IAM on GCP.
  4. Gere as chaves de acesso para esta conta de serviço.Generate the access keys for this service account.

Recuperar a chave de acesso para o Google Cloud Storage

Permissões necessáriasRequired permissions

Para copiar dados do Google Cloud Storage, verifique se você recebeu as seguintes permissões para operações de objeto: storage.objects.get e storage.objects.list .To copy data from Google Cloud Storage, make sure you've been granted the following permissions for object operations: storage.objects.get and storage.objects.list.

Se você usar a interface do usuário do Data Factory para criar, storage.buckets.list será necessária permissão adicional para operações como testar a conexão com o serviço vinculado e navegar da raiz.If you use Data Factory UI to author, additional storage.buckets.list permission is required for operations like testing connection to linked service and browsing from root. Se você não quiser conceder essa permissão, poderá escolher as opções "testar a conexão com o caminho do arquivo" ou "procurar a partir do caminho especificado" na interface do usuário.If you don't want to grant this permission, you can choose "Test connection to file path" or "Browse from specified path" options from the UI.

Para obter a lista completa de funções de armazenamento em nuvem do Google e permissões associadas, consulte funções iam para armazenamento em nuvem no site do Google Cloud.For the full list of Google Cloud Storage roles and associated permissions, see IAM roles for Cloud Storage on the Google Cloud site.

IntroduçãoGetting started

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

As seções a seguir fornecem detalhes sobre as propriedades que são usadas para definir entidades do Data Factory específicas ao conector do Google Cloud Storage.The following sections provide details about properties that are used to define Data Factory entities specific to Google Cloud Storage.

Propriedades do serviço vinculadoLinked service properties

As propriedades a seguir têm suporte para os serviços vinculados do Google Cloud Storage:The following properties are supported for Google Cloud Storage linked services:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type deve ser definida como GoogleCloudStorage.The type property must be set to GoogleCloudStorage. SimYes
accessKeyIdaccessKeyId ID da chave de acesso secreta.ID of the secret access key. Para ver a chave de acesso e o segredo, confira Prerrequisitos.To find the access key and secret, see Prerequisites. SimYes
secretAccessKeysecretAccessKey A chave de acesso do secreta em si.The secret access key itself. Marque este campo como SecureString para armazená-lo com segurança no data Factory ou faça referência a um segredo armazenado em Azure Key Vault.Mark this field as SecureString to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. SimYes
serviceUrlserviceUrl Especifique o ponto de extremidade GCS personalizado como https://storage.googleapis.com .Specify the custom GCS endpoint as https://storage.googleapis.com. SimYes
connectViaconnectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados.The integration runtime to be used to connect to the data store. Você pode usar o tempo de execução de integração do Azure ou o tempo de execução de integração auto-hospedado (se o armazenamento de dados estiver em uma rede privada).You can use the Azure integration runtime or the self-hosted integration runtime (if your data store is in a private network). Se essa propriedade não for especificada, o serviço usará o tempo de execução de integração do Azure padrão.If this property isn't specified, the service uses the default Azure integration runtime. NãoNo

Veja um exemplo:Here's an example:

{
    "name": "GoogleCloudStorageLinkedService",
    "properties": {
        "type": "GoogleCloudStorage",
        "typeProperties": {
            "accessKeyId": "<access key id>",
            "secretAccessKey": {
                "type": "SecureString",
                "value": "<secret access key>"
            },
            "serviceUrl": "https://storage.googleapis.com"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Propriedades do conjunto de dadosDataset properties

O Azure Data Factory é compatível com os formatos de arquivo a seguir.Azure Data Factory supports the following file formats. Confira cada artigo para obter configurações baseadas em formato.Refer to each article for format-based settings.

As propriedades a seguir têm suporte para o armazenamento em nuvem do Google em location configurações em um conjunto de acordo com base em formato:The following properties are supported for Google Cloud Storage under location settings in a format-based dataset:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type em location no DataSet deve ser definida como GoogleCloudStorageLocation.The type property under location in the dataset must be set to GoogleCloudStorageLocation. SimYes
bucketNamebucketName O nome do bucket GCS.The GCS bucket name. SimYes
folderPathfolderPath O caminho para a pasta sob o bucket fornecido.The path to folder under the given bucket. Se você quiser usar um curinga para filtrar a pasta, ignore essa configuração e especifique isso nas configurações de origem da atividade.If you want to use a wildcard to filter the folder, skip this setting and specify that in activity source settings. NãoNo
fileNamefileName O nome do arquivo no Bucket e no caminho da pasta fornecidos.The file name under the given bucket and folder path. Se você quiser usar um curinga para filtrar os arquivos, ignore essa configuração e especifique isso nas configurações de origem da atividade.If you want to use a wildcard to filter the files, skip this setting and specify that in activity source settings. NãoNo

Exemplo:Example:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Google Cloud Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "GoogleCloudStorageLocation",
                "bucketName": "bucketname",
                "folderPath": "folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Propriedades da atividade de cópiaCopy activity properties

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines.For a full list of sections and properties available for defining activities, see the Pipelines article. Esta seção fornece uma lista das propriedades que a fonte de armazenamento do Google Cloud suporta.This section provides a list of properties that the Google Cloud Storage source supports.

Armazenamento em nuvem do Google como um tipo de origemGoogle Cloud Storage as a source type

O Azure Data Factory é compatível com os formatos de arquivo a seguir.Azure Data Factory supports the following file formats. Confira cada artigo para obter configurações baseadas em formato.Refer to each article for format-based settings.

As propriedades a seguir têm suporte para o armazenamento em nuvem do Google em storeSettings configurações em uma fonte de cópia baseada em formato:The following properties are supported for Google Cloud Storage under storeSettings settings in a format-based copy source:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type em storeSettings deve ser definida como GoogleCloudStorageReadSettings.The type property under storeSettings must be set to GoogleCloudStorageReadSettings. SimYes
*Localize os arquivos a serem copiados: _*Locate the files to copy: _
OPÇÃO 1: caminho estáticoOPTION 1: static path
Copiar do caminho do bucket ou de pasta/arquivo especificado no conjunto de dados.Copy from the given bucket or folder/file path specified in the dataset. Se você quiser copiar todos os arquivos de um Bucket ou pasta, especifique também wildcardFileName como _ .If you want to copy all files from a bucket or folder, additionally specify wildcardFileName as _.
OPÇÃO DOIS: Prefixo GCSOPTION 2: GCS prefix
– prefix- prefix
Prefixo do nome da chave de GCS no Bucket especificado configurado no conjunto de dados para filtrar os arquivos de GCS de origem.Prefix for the GCS key name under the given bucket configured in the dataset to filter source GCS files. As chaves de GCS cujos nomes começam com bucket_in_dataset/this_prefix são selecionadas.GCS keys whose names start with bucket_in_dataset/this_prefix are selected. Ele utiliza o filtro do lado do serviço de GCS, que fornece melhor desempenho do que um filtro curinga.It utilizes GCS's service-side filter, which provides better performance than a wildcard filter. NãoNo
OPÇÃO 3: curingaOPTION 3: wildcard
- wildcardFolderPath- wildcardFolderPath
O caminho da pasta com caracteres curinga no Bucket especificado configurado em um conjunto de dados para filtrar as pastas de origem.The folder path with wildcard characters under the given bucket configured in a dataset to filter source folders.
Os curingas permitidos são: * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único).Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character). Use ^ para escapar se o nome da pasta tiver um curinga ou este caractere de escape dentro de.Use ^ to escape if your folder name has a wildcard or this escape character inside.
Veja mais exemplos em Exemplos de filtro de pastas e arquivos.See more examples in Folder and file filter examples.
NãoNo
OPÇÃO 3: curingaOPTION 3: wildcard
- wildcardFileName- wildcardFileName
O nome do arquivo com caracteres curinga no Bucket e caminho da pasta fornecidos (ou caminho da pasta curinga) para filtrar os arquivos de origem.The file name with wildcard characters under the given bucket and folder path (or wildcard folder path) to filter source files.
Os curingas permitidos são: * (corresponde a zero ou mais caracteres) e ? (corresponde a zero ou caractere único).Allowed wildcards are: * (matches zero or more characters) and ? (matches zero or single character). Use ^ para escapar se o nome do arquivo tiver um curinga ou este caractere de escape dentro de.Use ^ to escape if your file name has a wildcard or this escape character inside. Veja mais exemplos em Exemplos de filtro de pastas e arquivos.See more examples in Folder and file filter examples.
SimYes
OPÇÃO 3: uma lista de arquivosOPTION 3: a list of files
- fileListPath- fileListPath
Indica a cópia de um determinado conjunto de arquivos.Indicates to copy a given file set. Aponte para um arquivo de texto que inclui uma lista de arquivos que você deseja copiar, um arquivo por linha, que é o caminho relativo para o caminho configurado no conjunto de um.Point to a text file that includes a list of files you want to copy, one file per line, which is the relative path to the path configured in the dataset.
Quando você estiver usando essa opção, não especifique o nome do arquivo no conjunto de conjuntos.When you're using this option, do not specify the file name in the dataset. Veja mais exemplos em Exemplos de lista de arquivos.See more examples in File list examples.
NãoNo
*Configurações adicionais: _*Additional settings: _
recursivarecursive Indica se os dados são lidos recursivamente das subpastas ou somente da pasta especificada.Indicates whether the data is read recursively from the subfolders or only from the specified folder. Observe que quando _ recursivo* é definido como true e o coletor é um armazenamento baseado em arquivo, uma pasta ou subpasta vazia não é copiada ou criada no coletor.Note that when _ recursive* is set to true and the sink is a file-based store, an empty folder or subfolder isn't copied or created at the sink.
Os valores permitidos são true (padrão) e false.Allowed values are true (default) and false.
Essa propriedade não se aplica quando você configura fileListPath.This property doesn't apply when you configure fileListPath.
NãoNo
deleteFilesAfterCompletiondeleteFilesAfterCompletion Indica se os arquivos binários serão excluídos do repositório de origem após a movimentação com êxito para o repositório de destino.Indicates whether the binary files will be deleted from source store after successfully moving to the destination store. A exclusão do arquivo é por arquivo, portanto, quando a atividade de cópia falhar, você verá que alguns arquivos já foram copiados para o destino e excluídos da origem, enquanto outros ainda permanecem no repositório de origem.The file deletion is per file, so when copy activity fails, you will see some files have already been copied to the destination and deleted from source, while others are still remaining on source store.
Esta propriedade só é válida no cenário de cópia de arquivos binários.This property is only valid in binary files copy scenario. O valor padrão: false.The default value: false.
NãoNo
modifiedDatetimeStartmodifiedDatetimeStart Os arquivos são filtrados com base no atributo: última modificação.Files are filtered based on the attribute: last modified.
Os arquivos serão escolhidos se a hora da última alteração estiver dentro do período entre modifiedDatetimeStart e modifiedDatetimeEnd.The files will be selected if their last modified time is within the time range between modifiedDatetimeStart and modifiedDatetimeEnd. A hora é aplicada ao fuso horário de UTC no formato "2018-12-01T05:00:00Z".The time is applied to the UTC time zone in the format of "2018-12-01T05:00:00Z".
As propriedades podem ser nulas, o que significa que nenhum filtro de atributo de arquivo será aplicado ao conjunto de um.The properties can be NULL, which means no file attribute filter will be applied to the dataset. Quando modifiedDatetimeStart tem um valor DateTime, mas modifiedDatetimeEnd é nulo, os arquivos cujo último atributo modificado é maior ou igual ao valor DateTime serão selecionados.When modifiedDatetimeStart has a datetime value but modifiedDatetimeEnd is NULL, the files whose last modified attribute is greater than or equal to the datetime value will be selected. Quando modifiedDatetimeEnd tem um valor DateTime, mas modifiedDatetimeStart é nulo, os arquivos cujo último atributo modificado é menor que o valor DateTime será selecionado.When modifiedDatetimeEnd has a datetime value but modifiedDatetimeStart is NULL, the files whose last modified attribute is less than the datetime value will be selected.
Essa propriedade não se aplica quando você configura fileListPath.This property doesn't apply when you configure fileListPath.
NãoNo
modifiedDatetimeEndmodifiedDatetimeEnd Mesmo que acima.Same as above. NãoNo
enablePartitionDiscoveryenablePartitionDiscovery Para arquivos que são particionados, especifique se deseja analisar as partições do caminho do arquivo e adicioná-las como colunas de origem adicionais.For files that are partitioned, specify whether to parse the partitions from the file path and add them as additional source columns.
Os valores permitidos são false (padrão) e true.Allowed values are false (default) and true.
NãoNo
partitionRootPathpartitionRootPath Quando a descoberta de partição estiver habilitada, especifique o caminho raiz absoluto para ler as pastas particionadas como colunas de dados.When partition discovery is enabled, specify the absolute root path in order to read partitioned folders as data columns.

Se não for especificado, por padrão,If it is not specified, by default,
-Quando você usa o caminho do arquivo no conjunto de programas ou na lista de arquivos na origem, o caminho raiz da partição é o caminho configurado no conjunto de um.- When you use file path in dataset or list of files on source, partition root path is the path configured in dataset.
-Quando você usa o filtro de pasta curinga, o caminho raiz da partição é o subcaminho antes do primeiro caractere curinga.- When you use wildcard folder filter, partition root path is the sub-path before the first wildcard.

Por exemplo, supondo que você configure o caminho no conjunto de um como "raiz/pasta/ano = 2020/mês = 08/dia = 27":For example, assuming you configure the path in dataset as "root/folder/year=2020/month=08/day=27":
-Se você especificar o caminho raiz da partição como "raiz/pasta/ano = 2020", a atividade de cópia irá gerar mais duas colunas month e day com o valor "08" e "27", respectivamente, além das colunas dentro dos arquivos.- If you specify partition root path as "root/folder/year=2020", copy activity will generate two more columns month and day with value "08" and "27" respectively, in addition to the columns inside the files.
-Se o caminho raiz da partição não for especificado, nenhuma coluna extra será gerada.- If partition root path is not specified, no extra column will be generated.
NãoNo
maxConcurrentConnectionsmaxConcurrentConnections O número de conexões simultâneas com o armazenamento.The number of the concurrent connections to storage. Especifique somente quando desejar limitar as conexões simultâneas ao armazenamento de dados.Specify only when you want to limit concurrent connections to the data store. NãoNo

Exemplo:Example:

"activities":[
    {
        "name": "CopyFromGoogleCloudStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "GoogleCloudStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Exemplos de filtro de pasta e arquivoFolder and file filter examples

Esta seção descreve o comportamento resultante do caminho da pasta e do nome de arquivo com filtros curinga.This section describes the resulting behavior of the folder path and file name with wildcard filters.

bucketbucket chavekey recursivarecursive Estrutura da pasta de origem e resultado do filtro (os arquivos em negrito são recuperados)Source folder structure and filter result (files in bold are retrieved)
bucketbucket Folder*/* falsefalse bucketbucket
    FolderA    FolderA
        Arquivo1.csv        File1.csv
        Arquivo2.json        File2.json
        Subpasta1        Subfolder1
            Arquivo3.csv            File3.csv
            Arquivo4.json            File4.json
            Arquivo5.csv            File5.csv
    OutraPastaB    AnotherFolderB
        Arquivo6.csv        File6.csv
bucketbucket Folder*/* truetrue bucketbucket
    FolderA    FolderA
        Arquivo1.csv        File1.csv
        Arquivo2.json        File2.json
        Subpasta1        Subfolder1
            Arquivo3.csv            File3.csv
            Arquivo4.json            File4.json
            Arquivo5.csv            File5.csv
    OutraPastaB    AnotherFolderB
        Arquivo6.csv        File6.csv
bucketbucket Folder*/*.csv falsefalse bucketbucket
    FolderA    FolderA
        Arquivo1.csv        File1.csv
        Arquivo2.json        File2.json
        Subpasta1        Subfolder1
            Arquivo3.csv            File3.csv
            Arquivo4.json            File4.json
            Arquivo5.csv            File5.csv
    OutraPastaB    AnotherFolderB
        Arquivo6.csv        File6.csv
bucketbucket Folder*/*.csv truetrue bucketbucket
    FolderA    FolderA
        Arquivo1.csv        File1.csv
        Arquivo2.json        File2.json
        Subpasta1        Subfolder1
            Arquivo3.csv            File3.csv
            Arquivo4.json            File4.json
            Arquivo5.csv            File5.csv
    OutraPastaB    AnotherFolderB
        Arquivo6.csv        File6.csv

Exemplos de lista de arquivosFile list examples

Esta seção descreve o comportamento resultante do uso de um caminho de lista de arquivos na origem da atividade de cópia.This section describes the resulting behavior of using a file list path in the Copy activity source.

Suponha que você tenha a seguinte estrutura de pasta de origem e queira copiar os arquivos em negrito:Assume that you have the following source folder structure and want to copy the files in bold:

Exemplo de estrutura de origemSample source structure Conteúdo em FileListToCopy.txtContent in FileListToCopy.txt Configuração de Data FactoryData Factory configuration
bucketbucket
    FolderA    FolderA
        Arquivo1.csv        File1.csv
        Arquivo2.json        File2.json
        Subpasta1        Subfolder1
            Arquivo3.csv            File3.csv
            Arquivo4.json            File4.json
            Arquivo5.csv            File5.csv
    Metadados    Metadata
        FileListToCopy.txt        FileListToCopy.txt
File1.csvFile1.csv
Subfolder1/File3.csvSubfolder1/File3.csv
Subfolder1/File5.csvSubfolder1/File5.csv
No conjunto de dados:In dataset:
– Bucket: bucket- Bucket: bucket
- Caminho da pasta: FolderA- Folder path: FolderA

Na origem da atividade de cópia:In copy activity source:
- Caminho da lista de arquivos: bucket/Metadata/FileListToCopy.txt- File list path: bucket/Metadata/FileListToCopy.txt

O caminho da lista de arquivos aponta para um arquivo de texto no mesmo armazenamento de dados que inclui uma lista de arquivos que você deseja copiar, um arquivo por linha, com o caminho relativo para o caminho configurado no conjunto de dados.The file list path points to a text file in the same data store that includes a list of files you want to copy, one file per line, with the relative path to the path configured in the dataset.

Pesquisar propriedades de atividadeLookup activity properties

Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.To learn details about the properties, check Lookup activity.

Propriedades de atividade GetMetadataGetMetadata activity properties

Para obter detalhes sobre as propriedades, verifique a atividade GetMetadata.To learn details about the properties, check GetMetadata activity.

Excluir propriedades da atividadeDelete activity properties

Para obter detalhes sobre as propriedades, marque a atividade de exclusão.To learn details about the properties, check Delete activity.

Modelos herdadosLegacy models

Se você estivesse usando um conector do Amazon S3 para copiar dados do Google Cloud Storage, ainda há suporte para compatibilidade com versões anteriores.If you were using an Amazon S3 connector to copy data from Google Cloud Storage, it's still supported as is for backward compatibility. Sugerimos que você use o novo modelo mencionado anteriormente.We suggest that you use the new model mentioned earlier. A interface do usuário de criação do Data Factory mudou para gerar o novo modelo.The Data Factory authoring UI has switched to generating the new model.

Próximas etapasNext steps

Para obter uma lista de armazenamentos de dados que a atividade de cópia no Azure Data Factory dá suporte como fontes e coletores, consulte armazenamentos de dados com suporte.For a list of data stores that the Copy activity in Azure Data Factory supports as sources and sinks, see Supported data stores.