Partilhar via


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

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Sugestão

Experimente Data Factory no Microsoft Fabric, uma solução de análise completa para empresas. Microsoft Fabric abrange tudo, desde a movimentação de dados até à ciência de dados, análises em tempo real, inteligência empresarial e relatórios. Saiba como iniciar um novo teste gratuitamente!

Este artigo descreve como usar a Atividade de Cópia em um pipeline do Azure Data Factory ou do Synapse Analytics para copiar dados do Spark. Ele se baseia no artigo de visão geral da atividade de cópia que apresenta uma visão geral da atividade de cópia.

Importante

O conector Spark versão 2.0 oferece 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.

Capacidades suportadas

Este conector Spark é suportado para os seguintes recursos:

Capacidades suportadas Imposto de Renda
Atividade de cópia (fonte/-) (1) (2)
Atividade de Pesquisa (1) (2)

(1) Infraestrutura de integração do Azure (2) Infraestrutura de integração auto-hospedada

Para obter uma lista de lojas de dados que são suportadas como fontes/destinos pela atividade de cópia, consulte a tabela Lojas de dados suportadas.

O serviço fornece um driver interno para habilitar a conectividade, portanto, você não precisa instalar manualmente nenhum driver usando esse conector.

Pré-requisitos

Se o seu armazenamento de dados estiver localizado dentro de uma rede no local, uma rede virtual do Azure ou uma Amazon Virtual Private Cloud, precisa configurar um ambiente de execução de integração auto-hospedado para se conectar a ele.

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

Você também pode usar a funcionalidade de runtime de integração de rede virtual gerida na Azure Data Factory para aceder à rede local sem necessidade de instalar e configurar um runtime de integração auto-hospedado.

Para obter mais informações sobre os mecanismos de segurança de rede e as opções suportadas pelo Data Factory, consulte Estratégias de acesso a dados.

Como Começar

Para executar a atividade Copiar com um pipeline, podes usar uma das seguintes ferramentas ou SDKs:

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

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

  1. Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e clique em Novo:

  2. Procure Spark e selecione o conector Spark.

    Captura de ecrã do conector 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 para o Spark.

Detalhes de configuração do conector

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

Propriedades do serviço vinculado

O conector Spark agora suporta a versão 2.0. Consulte esta seção para atualizar a sua versão do conector Spark a partir da versão 1.0. Para obter os detalhes da propriedade, consulte as seções correspondentes.

Versão 2.0

As seguintes propriedades são suportadas para o serviço vinculado Spark 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 especificares. O valor é 2.0. Sim
anfitrião Endereço IP ou nome de host do servidor Spark Sim
porto A porta TCP que o servidor Spark usa para escutar conexões de cliente. Se você se conectar ao Azure HDInsight, especifique a porta como 443. Sim
Tipo de servidor O tipo de servidor Spark.
O valor permitido é: SparkThriftServer
Não
thriftTransportProtocol O protocolo de transporte a ser usado na camada Thrift.
O valor permitido é: HTTP
Não
tipo de autenticação O método de autenticação usado para acessar o servidor Spark.
Os valores permitidos são: Anonymous, UsernameAndPassword, WindowsAzureHDInsightService
Sim
nome de utilizador O nome de usuário que você usa para acessar o Spark Server. Não
palavra-passe A senha correspondente ao usuário. Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. Não
httpCaminho A URL parcial correspondente ao servidor Spark. Não
habilitarSsl Especifica se as conexões com o servidor são criptografadas usando TLS. O valor padrão é true. Não
ativarValidaçãoDeCertificadoDoServidor Especifique se deseja habilitar a validação do certificado SSL do servidor quando você se conectar.
Use sempre o Repositório de Confiança do Sistema. O valor padrão é true.
Não
conectarVia O Integration Runtime a ser utilizado para estabelecer conexão ao repositório de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, ele usará o Tempo de Execução de Integração do Azure padrão. 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 seguintes propriedades são suportadas para o serviço vinculado Spark versão 1.0:

Propriedade Descrição Obrigatório
tipo A propriedade type deve ser definida como: Spark Sim
anfitrião Endereço IP ou nome de host do servidor Spark Sim
porto A porta TCP que o servidor Spark usa para escutar conexões de cliente. Se você se conectar ao Azure HDInsight, especifique a porta como 443. Sim
Tipo de servidor O tipo de servidor Spark.
Os valores permitidos são: SharkServer, SharkServer2, SparkThriftServer
Não
thriftTransportProtocol O protocolo de transporte a ser usado na camada Thrift.
Os valores permitidos são: Binary, SASL, HTTP
Não
tipo de autenticação O método de autenticação usado para acessar o servidor Spark.
Os valores permitidos são: Anonymous, Username, UsernameAndPassword, WindowsAzureHDInsightService
Sim
nome de utilizador O nome de usuário que você usa para acessar o Spark Server. Não
palavra-passe A senha correspondente ao usuário. Marque este campo como um SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. Não
httpCaminho A URL parcial correspondente ao servidor Spark. Não
habilitarSsl Especifica se as conexões com o servidor são criptografadas usando TLS. O valor predefinido é false. Não
trustedCertPath O caminho completo do arquivo .pem contendo certificados de CA confiáveis para verificar o servidor ao se conectar por TLS. Essa propriedade só pode ser definida ao usar TLS em IR auto-hospedado. O valor padrão é o arquivo cacerts.pem instalado com o IR. Não
utilizarORepositórioDeConfiançaDoSistema Especifica se deve ser usado um certificado de autoridade (CA) do armazenamento de confiança do sistema ou de um arquivo PEM especificado. O valor predefinido é false. Não
permitirDesajusteNomeAnfitriãoCN Especifica se um nome de certificado TLS/SSL emitido pela CA deve corresponder ao nome do host do servidor ao se conectar por TLS. O valor predefinido é false. Não
permitirCertificadoDeServidorAutoAssinado Especifica se os certificados autoassinados do servidor devem ser permitidos. O valor predefinido é false. Não
conectarVia O Integration Runtime a ser utilizado para estabelecer conexão ao repositório de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, ele usará o Tempo de Execução de Integração do Azure padrão. 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 de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo sobre conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados do Spark.

Para copiar dados do Spark, defina a propriedade type do conjunto de dados como SparkObject. As seguintes propriedades são suportadas:

Propriedade Descrição Obrigatório
tipo A propriedade type do conjunto de dados deve ser definida como: SparkObject Sim
esquema Nome do esquema. Não (caso "consulta" esteja especificada na fonte da atividade)
mesa Nome da tabela. Não (caso "consulta" esteja especificada na fonte da atividade)
nome da tabela Nome da tabela com esquema. Esta propriedade é suportada para compatibilidade com versões anteriores. Use schema e table para nova carga de trabalho. Não (caso "consulta" esteja especificada na fonte da atividade)

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 de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pela fonte do Spark.

Spark como fonte

Para copiar dados do Spark, defina o tipo de origem na atividade de cópia como SparkSource. As seguintes propriedades são suportadas na seção de origem da atividade de cópia:

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

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 o Spark

Quando você copia dados de e para o Spark, os seguintes mapeamentos de tipo de dados provisórios são usados no serviço. Para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o destino, consulte Mapeamentos de esquema e tipo de dados.

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 Booleano Booleano
Tipo de Byte Sbyte Int16
Tipo curto Int16 Int16
Tipo inteiro Int32 Int32
Tipo Longo Int64 Int64
Tipo de flutuação Solteiro Solteiro
Tipo Duplo Duplo Duplo
Tipo de Data Data/Hora Data/Hora
Tipo de carimbo de data/hora DateTimeOffset Data/Hora
StringType String String
Tipo Binário Byte[] Byte[]
Tipo decimal Decimal Decimal
Tipo de matriz String String
Tipo de estrutura String String
Tipo de mapa String String
Carimbo de data/horaNTZTipo Data/Hora Data/Hora
TipoDeIntervaloAnoMês String Não suportado. 
Tipo de Intervalo de Dia e Hora String Não suportado.

Propriedades da atividade de consulta

Para obter detalhes sobre as propriedades, consulte Lookup activity.

Atualizar o conector Spark

  1. Na página Editar serviço vinculado , selecione 2.0 para a versão e configure o serviço vinculado consultando as propriedades do serviço vinculado versão 2.0.

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

Diferenças entre o Spark versão 2.0 e a versão 1.0

O conector Spark versão 2.0 oferece novas funcionalidades e é compatível com a maioria dos recursos da versão 1.0. A tabela a seguir mostra as diferenças de recursos entre a versão 2.0 e a versão 1.0.

Versão 2.0 Versão 1.0
SharkServer e SharkServer2 não são suportados para serverType. Suporte SharkServer e SharkServer2 para serverType.
Binário e SASL não são suportados para thriftTransportProtocl. Suporte binário e SASL para thriftTransportProtocl.
O tipo de autenticação de nome de usuário não é suportado. Suporte o tipo de autenticação de nome de utilizador.
O valor padrão de enableSSL é true. trustedCertPath, useSystemTrustStoree allowHostNameCNMismatchallowSelfSignedServerCert não são suportados.

enableServerCertificateValidation está suportado.
O valor padrão de enableSSL é false. Além disso, suporte trustedCertPath, useSystemTrustStoreallowHostNameCNMismatche allowSelfSignedServerCert.

enableServerCertificateValidation não é suportado.
Os mapeamentos seguintes são usados para converter tipos de dados do Spark em tipos de dados provisórios que o serviço utiliza internamente.

TimestampType -> DateTimeOffset
TipoIntervaloAnoMês -> Cadeia
DayTimeIntervalType -> String
Os mapeamentos seguintes são usados para converter tipos de dados do Spark em tipos de dados provisórios que o serviço utiliza internamente.

TimestampType -> DateTime
Outros mapeamentos suportados pela versão 2.0 listados à esquerda não são suportados pela versão 1.0.

Para obter uma lista de armazenamentos de dados suportados como fontes e destinos na atividade de cópia, consulte Armazenamentos de dados suportados.