Compartilhar via


Copiar dados do Spark utilizando o Azure Data Factory ou Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Dica

Experimente o Data Factory no Microsoft Fabric, uma solução de análise completa para empresas. O Microsoft Fabric abrange desde movimentação de dados até ciência de dados, análise em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

Este artigo descreve como usar a atividade de cópia nos pipelines do Azure Data Factory ou do Azure Synapse Analytics para copiar dados de uma tabela do Spark. Ele amplia o artigo Visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.

Importante

A versão 2.0 do conector Spark fornece suporte nativo aprimorado ao Spark. Se você estiver usando o conector Spark versão 1.0 em sua solução, atualize o conector spark antes de 30 de setembro de 2025. Consulte esta seção para obter detalhes sobre a diferença entre a versão 2.0 e a versão 1.0.

Funcionalidades com suporte

O conector do Spark é compatível com as seguintes funcionalidades:

Funcionalidades com suporte IR
Atividade de cópia (origem/-) (1) (2)
Atividade de pesquisa (1) (2)

① Tempo de execução de integração do Azure ② Tempo de execução de integração auto-hospedado

Para obter uma lista de armazenamentos de dados com suporte como origens/coletores da atividade de cópia, confira a tabela Armazenamentos de dados com suporte.

O serviço fornece um driver interno para habilitar a conectividade, portanto, não é necessário instalar manualmente qualquer driver usando esse conector.

Pré-requisitos

Se o armazenamento de dados estiver localizado dentro de uma rede local, em uma rede virtual do Azure ou na Amazon Virtual Private Cloud, você precisará configurar um runtime de integração auto-hospedada para se conectar a ele.

Se o armazenamento de dados for um serviço de dados de nuvem gerenciado, você poderá usar o Azure Integration Runtime. Se o acesso for restrito aos IPs que estão aprovados nas regras de firewall, você poderá adicionar IPs do Azure Integration Runtime à lista de permissões.

Você também pode usar o recurso de runtime de integração da rede virtual gerenciada no Azure Data Factory para acessar a rede local sem instalar e configurar um runtime de integração auto-hospedada.

Para obter mais informações sobre os mecanismos de segurança de rede e as opções compatíveis com o Data Factory, consulte Estratégias de acesso a dados.

Introdução

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:

Criar um serviço vinculado ao Spark com a interface do usuário

Use as etapas abaixo para criar um serviço vinculado ao Spark na interface do usuário do portal do Azure.

  1. Navegue até a guia Gerenciar no workspace do Azure Data Factory ou do Synapse e selecione Serviços Vinculados. Depois, clique em Novo:

  2. Pesquise Spark e selecione o conector correspondente.

    Captura de tela do conector do Spark.

  3. Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.

    Captura de tela da configuração do serviço vinculado ao Spark.

Detalhes da configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas ao conector do Spark.

Propriedades do serviço vinculado

O conector do Spark agora dá suporte à versão 2.0. Consulte esta seção para atualizar a versão do conector Spark de 1.0 para uma versão mais recente. Para obter detalhes sobre as propriedades, consulte as seções correspondentes.

Versão 2.0

As propriedades a seguir têm suporte para o serviço vinculado Spark na versão 2.0:

Propriedade Descrição Obrigatório
tipo A propriedade type deve ser definida como: Spark Sim
versão A versão que você especifica. O valor é 2.0. Sim
hospedar Endereço IP ou nome do host do servidor Spark Sim
porta A porta TCP usada pelo servidor Spark para ouvir conexões de cliente. Se você se conectar ao Azure HDInsight, especifique a porta como 443. Sim
serverType O tipo de servidor do Spark.
O valor permitido é: SparkThriftServer
Não
thriftTransportProtocol O protocolo de transporte a ser usado na camada de Thrift.
O valor permitido é: HTTP
Não
tipoDeAutenticação O método de autenticação usado para acessar o servidor do Spark.
Valores permitidos são: Anonymous, UsernameAndPassword, WindowsAzureHDInsightService
Sim
nome de usuário O nome de usuário que você usa para acessar o servidor do Spark. Não
senha A senha correspondente ao usuário. Marque este campo como um SecureString para armazená-lo com segurança ou referencie um segredo armazenado no Azure Key Vault. Não
httpPath A URL parcial correspondente ao servidor do Spark.
Para o tipo de autenticação WindowsAzureHDInsightService, o valor padrão é /sparkhive2.
Não
ativarSsl Especifica se as conexões com o servidor são criptografadas via TLS. O valor padrão é true. Não
AtivarValidaçãoDeCertificadoDoServidor Especifique se deseja habilitar a validação do certificado SSL do servidor ao se conectar.
Sempre usar o Repositório confiável do Sistema. O valor padrão é true.
Não
connectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não for especificado, ele usa o Integration Runtime padrão do Azure. Não

Exemplo:

{
    "name": "SparkLinkedService",
    "properties": {
        "type": "Spark",
        "version": "2.0",
        "typeProperties": {
            "host": "<cluster>.azurehdinsight.net",
            "port": "<port>",
            "authenticationType": "WindowsAzureHDInsightService",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Versão 1.0

As propriedades a seguir são suportadas pela versão 1.0 do serviço vinculado Spark:

Propriedade Descrição Obrigatório
tipo A propriedade type deve ser definida como: Spark Sim
hospedar Endereço IP ou nome do host do servidor Spark Sim
porta A porta TCP usada pelo servidor Spark para ouvir conexões de cliente. Se você se conectar ao Azure HDInsight, especifique a porta como 443. Sim
serverType O tipo de servidor do Spark.
Valores permitidos são: SharkServer, SharkServer2, SparkThriftServer
Não
thriftTransportProtocol O protocolo de transporte a ser usado na camada de Thrift.
Os valores permitidos são: Binário, SASL, HTTP
Não
tipoDeAutenticação O método de autenticação usado para acessar o servidor do Spark.
Valores permitidos são: Anônimo, Username, UsernameAndPassword, WindowsAzureHDInsightService
Sim
nome de usuário O nome de usuário que você usa para acessar o servidor do Spark. Não
senha A senha correspondente ao usuário. Marque este campo como um SecureString para armazená-lo com segurança ou referencie um segredo armazenado no Azure Key Vault. Não
httpPath A URL parcial correspondente ao servidor do Spark. Não
ativarSsl Especifica se as conexões com o servidor são criptografadas via TLS. O valor padrão é false. Não
trustedCertPath O caminho completo do arquivo .pem que contém certificados de AC confiáveis para verificar o servidor ao se conectar via TLS. Essa propriedade só pode ser definida ao usar o TLS em IR auto-hospedado. O valor padrão é o arquivo de cacerts.pem instalado com o IR. Não
useSystemTrustStore Especifica se deve usar um certificado de autoridade de certificação do repositório de confiança de sistema ou de um arquivo PEM especificado. O valor padrão é false. Não
allowHostNameCNMismatch Especifica se é necessário o nome do certificado TLS/SSL emitido pela AC para corresponder ao nome de host do servidor ao se conectar via TLS. O valor padrão é false. Não
allowSelfSignedServerCert Especifica se deve permitir os certificados autoassinados do servidor. O valor padrão é false. Não
connectVia O Integration Runtime a ser usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos. Se não for especificado, ele usa o Integration Runtime padrão do Azure. Não

Exemplo:

{
    "name": "SparkLinkedService",
    "properties": {
        "type": "Spark",
        "typeProperties": {
            "host": "<cluster>.azurehdinsight.net",
            "port": "<port>",
            "authenticationType": "WindowsAzureHDInsightService",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        }
    }
}

Propriedades do conjunto de dados

Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre conjuntos de dados. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados do Spark.

Para copiar dados do Spark, defina a propriedade type do conjunto de dados como SparkObject. Há suporte para as seguintes propriedades:

Propriedade Descrição Obrigatório
tipo A propriedade type do conjunto de dados precisa ser definida como: SparkObject Sim
esquema Nome do esquema. Não (se "query" na fonte da atividade for especificada)
tabela Nome da tabela. Não (se "query" na fonte da atividade for especificada)
nome da tabela Nome da tabela com esquema. Essa propriedade é compatível com versões anteriores. Use schema e table para uma nova carga de trabalho. Não (se "query" na fonte da atividade for especificada)

Exemplo

{
    "name": "SparkDataset",
    "properties": {
        "type": "SparkObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Spark linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Propriedades da atividade de cópia

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines. Esta seção fornece uma lista das propriedades com suporte pela origem do Spark.

Spark como fonte

Para copiar dados do Spark, defina o tipo de fonte na atividade de cópia como SparkSource. As propriedades a seguir têm suporte na seção source da atividade de cópia:

Propriedade Descrição Obrigatório
tipo A propriedade type da fonte da atividade de cópia deve ser definida como: SparkSource Sim
consulta Utiliza a consulta SQL personalizada para ler os dados. Por exemplo: "SELECT * FROM MyTable". Não (se "tableName" no conjunto de dados for especificado)

Exemplo:

"activities":[
    {
        "name": "CopyFromSpark",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Spark input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SparkSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Mapeamento de tipo de dados para Spark

Quando você copia dados de e para o Spark, os seguintes mapeamentos de tipo de dados provisórios são usados dentro do serviço. Para saber mais sobre como a atividade Copy mapeia o tipo de dados e esquema de origem para o coletor, consulte Mapeamentos de tipo de dados e esquema.

Tipo de dados do Spark Tipo de dados de serviço provisório (para a versão 2.0) Tipo de dados de serviço provisório (para a versão 1.0)
Tipo Booleano Boolean Boolean
ByteType Sbyte Int16
ShortType Int16 Int16
IntegerType Int32 Int32
LongType Int64 Int64
FloatType Single Single
DoubleType Double Double
DateType Data e Hora Data e Hora
TimestampType DateTimeOffset Data e Hora
StringType Cadeia de caracteres Cadeia de caracteres
TipoBinário Byte[] Byte[]
DecimalType Decimal Decimal
Cadeia de caracteres (precisão > 28)
ArrayType Cadeia de caracteres Cadeia de caracteres
Tipo de Estrutura Cadeia de caracteres Cadeia de caracteres
Tipo de Mapa Cadeia de caracteres Cadeia de caracteres
TimestampNTZType Data e Hora Data e Hora
YearMonthIntervalType (Tipo de Intervalo Ano-Mês) Cadeia de caracteres Não há suporte. 
DayTimeIntervalType Cadeia de caracteres Não há suporte.

Pesquisar propriedades de atividade

Para saber detalhes sobre as propriedades, verifique Pesquisar atividade.

Ciclo de vida e atualização do conector do Spark

A tabela a seguir mostra a fase de lançamento e os registros de alterações para diferentes versões do conector Spark:

Versão Estágio de lançamento Log de alterações
Versão 1.0 Fim do suporte anunciado /
Versão 2.0 Versão GA disponível enableServerCertificateValidation é suportado.

• O valor enableSSL padrão é true.

• Para o tipo de autenticação WindowsAzureHDInsightService, o valor httpPath padrão é /sparkhive2.

• DecimalType é lido como tipo de dados decimal. 

• O tipo de dados TimestampType é interpretado como DateTimeOffset.

• YearMonthIntervalType, DayTimeIntervalType são lidos como tipo de dados String.

trustedCertPath, useSystemTrustStoreallowHostNameCNMismatch e allowSelfSignedServerCert não há suporte.

• Não há suporte para SharkServer e SharkServer2.serverType

• Não há suporte para Binário e SASL para thriftTransportProtocl.

• Não há suporte para o tipo de autenticação de nome de usuário.

Atualizar o conector do Spark da versão 1.0 para a versão 2.0

  1. Na página Editar serviço vinculado , selecione 2.0 para a versão e configure o serviço vinculado, referindo-se às propriedades do serviço vinculado versão 2.0.

  2. O mapeamento de tipo de dados para o serviço vinculado spark versão 2.0 é diferente do da versão 1.0. Para saber mais sobre o mapeamento de tipo de dados mais recente, consulte Mapeamento de tipo de dados para Spark.

Para obter uma lista de armazenamentos de dados com suporte como coletores e fontes da atividade de cópia, confira os armazenamentos de dados com suporte.