Partilhar via


Copie dados do Spark usando Azure Data Factory ou Synapse Analytics

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Sugestão

Data Factory em Microsoft Fabric é a próxima geração de Azure Data Factory, com uma arquitetura mais simples, IA incorporada e novas funcionalidades. Se és novo na integração de dados, começa pelo Fabric Data Factory. As cargas de trabalho existentes do ADF podem atualizar para o Fabric para aceder a novas capacidades em ciência de dados, análise em tempo real e relatórios.

Este artigo descreve como usar a Atividade de Cópia num pipeline do Azure Data Factory ou 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 1.0 está em fase de remoção. Recomenda-se atualizar o conector Spark da versão 1.0 para 2.0.

Capacidades suportadas

Este conector Spark é suportado para os seguintes recursos:

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

(1) Runtime de integração Azure (2) Runtime de integração auto-hospedado

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 numa rede local, numa rede virtual Azure ou na Amazon Virtual Private Cloud, precisa de configurar um runtime de integração auto-hospedado para se ligar a ele.

Se o seu armazenamento de dados for um serviço de dados na cloud gerido, pode usar o Azure Integration Runtime. Se o acesso for restrito a IPs aprovados nas regras do firewall, pode adicionar IPs Azure Integration Runtime à lista de autorizações.

Também pode usar a funcionalidade managed virtual network integration runtime no Azure Data Factory para aceder à rede local sem 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 de cópia com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:

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

Use os passos seguintes para criar um serviço ligado ao Spark na interface do portal do Azure.

  1. Navegue até ao separador Gerir no seu espaço de trabalho Azure Data Factory ou Synapse e selecione Serviços Ligados, depois 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
alojar Endereço IP ou nome de host do servidor Spark Sim
porta A porta TCP que o servidor Spark usa para escutar conexões de cliente. Se te ligares ao Azure HDInsight, especifica 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 o armazenar de forma segura, ou referencia um segredo guardado em Azure Key Vault. Não
httpCaminho A URL parcial correspondente ao servidor Spark.
Para o tipo de autenticação WindowsAzureHDInsightService, o valor padrão é /sparkhive2.
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 para ser usado para se ligar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, usa o Azure Integration Runtime 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
alojar Endereço IP ou nome de host do servidor Spark Sim
porta A porta TCP que o servidor Spark usa para escutar conexões de cliente. Se te ligares ao Azure HDInsight, especifica 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 o armazenar de forma segura, ou referencia um segredo guardado em Azure Key Vault. 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 para ser usado para se ligar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, usa o Azure Integration Runtime 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)
tabela 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
String (precisão > 28)
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.

Ciclo de vida e atualização do conector Spark

A tabela a seguir mostra o estágio de liberação e os logs de alteração para diferentes versões do conector Spark:

Versão Fase de lançamento Registo de alterações
Versão 1.0 Removed Não aplicável.
Versão 2.0 Versão GA disponível • O enableServerCertificateValidation é suportado.

• O valor padrão de enableSSL é true.

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

• DecimalType é lido como tipo de dados decimal. 

• TimestampType é interpretado como o tipo de dados DateTimeOffset.

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

trustedCertPath• , useSystemTrustStoree allowHostNameCNMismatchallowSelfSignedServerCert não são suportados.

• SharkServer e SharkServer2 não são suportados pelo serverType.

• Binário e SASL não são suportados para thriftTransportProtocl.

• O tipo de autenticação de nome de utilizador não é suportado.

Atualize o conector 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 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.

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