Copiar dados do Amazon RDS para SQL Server usando o Azure Data Factory ou o Azure Synapse Analytics

Este artigo descreve como usar a atividade de cópia no Azure Data Factory e nos pipelines do Azure Synapse para copiar dados do banco de dados do Amazon RDS for SQL Server. Para saber mais, leia o artigo introdutório do Azure Data Factory ou do Azure Synapse Analytics.

Capacidades suportadas

Esse conector do Amazon RDS para SQL Server é compatível com os seguintes recursos:

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

(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado

Para obter uma lista de armazenamentos de dados suportados como fontes ou coletores pela atividade de cópia, consulte a tabela Armazenamentos de dados suportados.

Especificamente, este conector do Amazon RDS para SQL Server é compatível:

  • SQL Server versão 2005 e superior.
  • Copiar dados usando autenticação SQL ou Windows.
  • Como origem, recuperando dados usando uma consulta SQL ou um procedimento armazenado. Você também pode optar por copiar paralelamente da origem do Amazon RDS for SQL Server, consulte a seção Cópia paralela do banco de dados SQL para obter detalhes.

Não há suporte para o SQL Server Express LocalDB .

Pré-requisitos

Se seu armazenamento de dados estiver localizado dentro de uma rede local, uma rede virtual do Azure ou a Amazon Virtual Private Cloud, você precisará configurar um tempo 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 o recurso de tempo de execução de integração de rede virtual gerenciada no Azure Data Factory para acessar a rede local sem instalar e configurar um tempo de execução 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.

Começar agora

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

Criar um serviço vinculado do Amazon RDS para SQL Server usando a interface do usuário

Use as etapas a seguir para criar um serviço vinculado do Amazon RDS para SQL Server 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. Pesquise o servidor Amazon RDS for SQL e selecione o conector do Amazon RDS for SQL Server.

    Captura de tela do conector do Amazon RDS para SQL Server.

  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 do Amazon RDS for SQL Server.

Detalhes de configuração do conector

As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades de pipeline do Data Factory e do Synapse específicas para o conector de banco de dados do Amazon RDS for SQL Server.

Propriedades do serviço vinculado

A versão recomendada do conector do Amazon RDS para SQL Server é compatível com TLS 1.3. Consulte esta seção para atualizar sua versão do conector do Amazon RDS para SQL Server a partir da versão herdada . Para obter os detalhes da propriedade, consulte as seções correspondentes.

Nota

O Amazon RDS for SQL Server Always Encrypted não é compatível com o fluxo de dados.

Gorjeta

Se você acertar um erro com o código de erro "UserErrorFailedToConnectToSqlServer" e uma mensagem como "O limite de sessão para o banco de dados é XXX e foi atingido", adicione Pooling=false à sua cadeia de conexão e tente novamente.

Essas propriedades genéricas são suportadas para um serviço vinculado do Amazon RDS for SQL Server quando você aplica a versão recomendada :

Property Descrição Obrigatório
tipo A propriedade type deve ser definida como AmazonRdsForSqlServer. Sim
servidor O nome ou endereço de rede da instância do SQL Server à qual você deseja se conectar. Sim
base de dados O nome do banco de dados. Sim
authenticationType O tipo usado para autenticação. Os valores permitidos são SQL (padrão), Windows. Vá para a seção de autenticação relevante sobre propriedades e pré-requisitos específicos. Sim
alwaysEncryptedSettings Especifique as informações alwaysencryptedsettings necessárias para habilitar o Always Encrypted para proteger dados confidenciais armazenados no Amazon RDS for SQL Server usando identidade gerenciada ou entidade de serviço. Para obter mais informações, consulte o exemplo JSON seguindo a tabela e a seção Usando sempre criptografado . Se não for especificado, a configuração padrão sempre criptografada será desabilitada. Não
encriptar Indique se a criptografia TLS é necessária para todos os dados enviados entre o cliente e o servidor. Opções: obrigatório (para verdadeiro, padrão)/opcional (para falso)/estrito. Não
trustServerCertificate Indique se o canal será criptografado enquanto ignora a cadeia de certificados para validar a confiança. Não
hostNameInCertificate O nome do host a ser usado ao validar o certificado do servidor para a conexão. Quando não especificado, o nome do servidor é usado para validação de certificado. Não
ConecteVia Esse tempo de execução de integração é usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, o tempo de execução de integração padrão do Azure será usado. Não

Para obter propriedades de conexão adicionais, consulte a tabela abaixo:

Property Descrição Obrigatório
applicationIntent O tipo de carga de trabalho do aplicativo ao se conectar a um servidor. Os valores permitidos são ReadOnly e ReadWrite. Não
connectTimeout O período de tempo (em segundos) para aguardar uma conexão com o servidor antes de encerrar a tentativa e gerar um erro. Não
connectRetryCount O número de reconexões tentadas após a identificação de uma falha de conexão ociosa. O valor deve ser um número inteiro entre 0 e 255. Não
connectRetryInterval A quantidade de tempo (em segundos) entre cada tentativa de reconexão após a identificação de uma falha de conexão ociosa. O valor deve ser um número inteiro entre 1 e 60. Não
loadBalanceTimeout O tempo mínimo (em segundos) para a conexão viver no pool de conexões antes que a conexão seja destruída. Não
commandTimeout O tempo de espera padrão (em segundos) antes de encerrar a tentativa de executar um comando e gerar um erro. Não
Segurança integrada Os valores permitidos são true ou false. Ao especificar false, indique se userName e password estão especificados na conexão. Ao especificar true, indica se as credenciais atuais da conta do Windows são usadas para autenticação. Não
Parceiro de failover O nome ou endereço do servidor parceiro ao qual se conectar se o servidor primário estiver inativo. Não
maxPoolSize O número máximo de conexões permitido no pool de conexões para a conexão específica. Não
minPoolSize O número mínimo de conexões permitidas no pool de conexões para a conexão específica. Não
multipleActiveResultSets Os valores permitidos são true ou false. Quando você especifica true, um aplicativo pode manter vários conjuntos de resultados ativos (MARS). Quando você especifica false, um aplicativo deve processar ou cancelar todos os conjuntos de resultados de um lote antes de poder executar quaisquer outros lotes nessa conexão. Não
multiSubnetFailover Os valores permitidos são true ou false. Se seu aplicativo estiver se conectando a um grupo de disponibilidade (AG) AlwaysOn em sub-redes diferentes, definir essa propriedade para true fornecer deteção e conexão mais rápidas com o servidor ativo no momento. Não
packetSize O tamanho em bytes dos pacotes de rede usados para se comunicar com uma instância do servidor. Não
Agrupamento Os valores permitidos são true ou false. Quando você especificar true, a conexão será agrupada. Quando você especificar false, a conexão será aberta explicitamente toda vez que a conexão for solicitada. Não

Autenticação do SQL

Para usar a autenticação SQL, além das propriedades genéricas descritas na seção anterior, especifique as seguintes propriedades:

Property Descrição Obrigatório
nome de utilizador O nome de usuário usado para se conectar ao servidor. Sim
password A senha para o nome de usuário. Marque este campo como SecureString para armazená-lo com segurança. Ou, você pode fazer referência a um segredo armazenado no Cofre da Chave do Azure. Sim

Exemplo: Usar autenticação SQL

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemplo: Usar a autenticação SQL com uma senha no Cofre de Chaves do Azure

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<secretName>" 
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemplo: Usar sempre criptografado

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "SQL",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "alwaysEncryptedSettings": {
                "alwaysEncryptedAkvAuthType": "ServicePrincipal",
                "servicePrincipalId": "<service principal id>",
                "servicePrincipalKey": {
                    "type": "SecureString",
                    "value": "<service principal key>"
                }
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Autenticação do Windows

Para usar a autenticação do Windows, além das propriedades genéricas descritas na seção anterior, especifique as seguintes propriedades:

Property Descrição Obrigatório
nome de utilizador Especifique um nome de usuário. Um exemplo é domainname\username. Sim
password Especifique uma senha para a conta de usuário especificada para o nome de usuário. Marque este campo como SecureString para armazená-lo com segurança. Ou, você pode fazer referência a um segredo armazenado no Cofre da Chave do Azure. Sim

Exemplo: Usar a autenticação do Windows

{
    "name": "AmazonSqlLinkedService",
    "properties": {
        "type": "AmazonRdsForSqlServer",
        "typeProperties": {
            "server": "<name or network address of the SQL server instance>",
            "database": "<database name>",
            "encrypt": "<encrypt>",
            "trustServerCertificate": false,
            "authenticationType": "Windows",
            "userName": "<domain\\username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Versão legada

Essas propriedades genéricas são compatíveis com um serviço vinculado do Amazon RDS for SQL Server quando você aplica a versão herdada :

Property Descrição Obrigatório
tipo A propriedade type deve ser definida como AmazonRdsForSqlServer. Sim
alwaysEncryptedSettings Especifique as informações alwaysencryptedsettings necessárias para habilitar o Always Encrypted para proteger dados confidenciais armazenados no Amazon RDS for SQL Server usando identidade gerenciada ou entidade de serviço. Para obter mais informações, consulte a seção Usando sempre criptografado . Se não for especificado, a configuração padrão sempre criptografada será desabilitada. Não
ConecteVia Esse tempo de execução de integração é usado para se conectar ao armazenamento de dados. Saiba mais na seção Pré-requisitos . Se não for especificado, o tempo de execução de integração padrão do Azure será usado. Não

Esse conector do Amazon RDS for SQL Server é compatível com os seguintes tipos de autenticação. Consulte as seções correspondentes para obter detalhes.

Autenticação SQL para a versão herdada

Para usar a autenticação SQL, além das propriedades genéricas descritas na seção anterior, especifique as seguintes propriedades:

Property Descrição Obrigatório
connectionString Especifique as informações connectionString necessárias para se conectar ao banco de dados do Amazon RDS for SQL Server. Especifique um nome de login como seu nome de usuário e verifique se o banco de dados que você deseja conectar está mapeado para esse login. Sim
password Se você quiser colocar uma senha no Cofre de Chaves do Azure, extraia a password configuração da cadeia de conexão. Para obter mais informações, consulte Armazenar credenciais no Cofre da Chave do Azure. Não

Autenticação do Windows para a versão herdada

Para usar a autenticação do Windows, além das propriedades genéricas descritas na seção anterior, especifique as seguintes propriedades:

Property Descrição Obrigatório
connectionString Especifique as informações connectionString necessárias para se conectar ao banco de dados do Amazon RDS for SQL Server. Sim
nome de utilizador Especifique um nome de usuário. Um exemplo é domainname\username. Sim
password Especifique uma senha para a conta de usuário especificada para o nome de usuário. Marque este campo como SecureString para armazená-lo com segurança. Ou, você pode fazer referência a um segredo armazenado no Cofre da Chave do Azure. Sim

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 compatíveis com o conjunto de dados do Amazon RDS for SQL Server.

Para copiar dados de um banco de dados do Amazon RDS for SQL Server, as seguintes propriedades são suportadas:

Property Descrição Obrigatório
tipo A propriedade type do conjunto de dados deve ser definida como AmazonRdsForSqlServerTable. Sim
esquema Nome do esquema. Não
tabela Nome da tabela/vista. Não
tableName Nome da tabela/vista com esquema. Esta propriedade é suportada para compatibilidade com versões anteriores. Para nova carga de trabalho, use schema e table. Não

Exemplo

{
    "name": "AmazonRdsForSQLServerDataset",
    "properties":
    {
        "type": "AmazonRdsForSqlServerTable",
        "linkedServiceName": {
            "referenceName": "<Amazon RDS for SQL Server linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "schema": "<schema_name>",
            "table": "<table_name>"
        }
    }
}

Propriedades da atividade Copy

Para obter uma lista completa de seções e propriedades disponíveis para uso para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades compatíveis com a origem do Amazon RDS for SQL Server.

Amazon RDS para SQL Server como origem

Gorjeta

Para carregar dados do Amazon RDS for SQL Server de forma eficiente usando o particionamento de dados, saiba mais em Cópia paralela do banco de dados SQL.

Para copiar dados do Amazon RDS for SQL Server, defina o tipo de origem na atividade de cópia como AmazonRdsForSqlServerSource. As seguintes propriedades são suportadas na seção de origem da atividade de cópia:

Property Descrição Obrigatório
tipo A propriedade type da fonte de atividade de cópia deve ser definida como AmazonRdsForSqlServerSource. Sim
sqlReaderQuery Use a consulta SQL personalizada para ler dados. Um exemplo é select * from MyTable. Não
sqlReaderStoredProcedureName Esta propriedade é o nome do procedimento armazenado que lê dados da tabela de origem. A última instrução SQL deve ser uma instrução SELECT no procedimento armazenado. Não
storedProcedureParameters Esses parâmetros são para o procedimento armazenado.
Os valores permitidos são pares de nome ou valor. Os nomes e o invólucro dos parâmetros devem corresponder aos nomes e invólucros dos parâmetros do procedimento armazenado.
Não
Nível de isolamento Especifica o comportamento de bloqueio de transação para a fonte SQL. Os valores permitidos são: ReadCommitted, ReadUncommitted, RepeatableRead, Serializable, Snapshot. Se não for especificado, o nível de isolamento padrão do banco de dados será usado. Consulte este documento para obter mais detalhes. Não
partitionOptions Especifica as opções de particionamento de dados usadas para carregar dados do Amazon RDS for SQL Server.
Os valores permitidos são: None (padrão), PhysicalPartitionsOfTable e DynamicRange.
Quando uma opção de partição é habilitada (ou seja, não None), o grau de paralelismo para carregar dados simultaneamente do Amazon RDS for SQL Server é controlado pela parallelCopies configuração na atividade de cópia.
Não
partitionSettings Especifique o grupo de configurações para particionamento de dados.
Aplique quando a opção de partição não Nonefor .
Não
Em partitionSettings:
partitionColumnName Especifique o nome da coluna de origem no número inteiro ou no tipo data/data/hora (int, smallint, bigint, date, smalldatetimedatetimedatetime2, , ou datetimeoffset) que será usado pelo particionamento de intervalo para cópia paralela. Se não for especificado, o índice ou a chave primária da tabela será detetado automaticamente e usado como a coluna de partição.
Aplique quando a opção de partição for DynamicRange. Se você usar uma consulta para recuperar os dados de origem, conecte ?DfDynamicRangePartitionCondition a cláusula WHERE. Para obter um exemplo, consulte a seção Cópia paralela do banco de dados SQL.
Não
partiçãoUpperBound O valor máximo da coluna de partição para divisão do intervalo de partições. Esse valor é usado para decidir a passada da partição, não para filtrar as linhas na tabela. Todas as linhas na tabela ou no resultado da consulta serão particionadas e copiadas. Se não for especificado, a atividade de cópia detetará automaticamente o valor.
Aplique quando a opção de partição for DynamicRange. Para obter um exemplo, consulte a seção Cópia paralela do banco de dados SQL.
Não
partiçãoLowerBound O valor mínimo da coluna de partição para divisão do intervalo de partições. Esse valor é usado para decidir a passada da partição, não para filtrar as linhas na tabela. Todas as linhas na tabela ou no resultado da consulta serão particionadas e copiadas. Se não for especificado, a atividade de cópia detetará automaticamente o valor.
Aplique quando a opção de partição for DynamicRange. Para obter um exemplo, consulte a seção Cópia paralela do banco de dados SQL.
Não

Tenha em atenção os seguintes pontos:

  • Se sqlReaderQuery for especificado para AmazonRdsForSqlServerSource, a atividade de cópia executará essa consulta na origem do Amazon RDS for SQL Server para obter os dados. Você também pode especificar um procedimento armazenado especificando sqlReaderStoredProcedureName e storedProcedureParameters se o procedimento armazenado tiver parâmetros.
  • Ao usar o procedimento armazenado na origem para recuperar dados, observe se o procedimento armazenado for projetado como retornando esquema diferente quando um valor de parâmetro diferente for passado, você poderá encontrar falha ou ver um resultado inesperado ao importar esquema da interface do usuário ou ao copiar dados para o banco de dados SQL com a criação automática de tabelas.

Exemplo: Usar consulta SQL

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderQuery": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Exemplo: Usar um procedimento armazenado

"activities":[
    {
        "name": "CopyFromAmazonRdsForSQLServer",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Amazon RDS for SQL Server input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRdsForSqlServerSource",
                "sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
                "storedProcedureParameters": {
                    "stringData": { "value": "str3" },
                    "identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

A definição de procedimento armazenado

CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
    @stringData varchar(20),
    @identifier int
)
AS
SET NOCOUNT ON;
BEGIN
    select *
    from dbo.UnitTestSrcTable
    where dbo.UnitTestSrcTable.stringData != stringData
    and dbo.UnitTestSrcTable.identifier != identifier
END
GO

Cópia paralela do banco de dados SQL

O conector do Amazon RDS para SQL Server na atividade de cópia fornece particionamento de dados interno para copiar dados em paralelo. Você pode encontrar opções de particionamento de dados na guia Origem da atividade de cópia.

Captura de ecrã das opções de partição

Quando você habilita a cópia particionada, a atividade de cópia executa consultas paralelas na origem do Amazon RDS for SQL Server para carregar dados por partições. O grau paralelo é controlado pela parallelCopies configuração na atividade de cópia. Por exemplo, se você definir parallelCopies como quatro, o serviço gerará e executará simultaneamente quatro consultas com base na opção e nas configurações de partição especificadas, e cada consulta recuperará uma parte dos dados do Amazon RDS for SQL Server.

Sugere-se que você habilite a cópia paralela com particionamento de dados, especialmente quando carrega uma grande quantidade de dados do Amazon RDS for SQL Server. A seguir estão sugeridas configurações para diferentes cenários. Ao copiar dados para o armazenamento de dados baseado em arquivo, é recomendável gravar em uma pasta como vários arquivos (especifique apenas o nome da pasta), caso em que o desempenho é melhor do que gravar em um único arquivo.

Cenário Configurações sugeridas
Carga completa a partir de uma mesa grande, com divisórias físicas. Opção de partição: Partições físicas da tabela.

Durante a execução, o serviço deteta automaticamente as partições físicas e copia os dados por partições.

Para verificar se a sua tabela tem partição física ou não, pode consultar esta consulta.
Carga completa a partir de uma tabela grande, sem partições físicas, enquanto com uma coluna inteira ou datetime para particionamento de dados. Opções de partição: Partição de intervalo dinâmico.
Coluna de partição (opcional): especifique a coluna usada para particionar dados. Se não for especificado, a coluna de chave primária será usada.
Limite superior da partição e limite inferior da partição (opcional): Especifique se deseja determinar o passo da partição. Isso não é para filtrar as linhas na tabela, todas as linhas na tabela serão particionadas e copiadas. Se não for especificado, a atividade de cópia deteta automaticamente os valores e pode levar muito tempo, dependendo dos valores MIN e MAX. Recomenda-se fornecer limite superior e limite inferior.

Por exemplo, se a coluna de partição "ID" tiver valores que variam de 1 a 100 e você definir o limite inferior como 20 e o limite superior como 80, com cópia paralela como 4, o serviço recuperará dados por 4 partições - IDs no intervalo <=20, [21, 50], [51, 80] e >=81, respectivamente.
Carregue uma grande quantidade de dados usando uma consulta personalizada, sem partições físicas, enquanto com uma coluna inteira ou data/data/hora para particionamento de dados. Opções de partição: Partição de intervalo dinâmico.
Consulta: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>.
Coluna de partição: especifique a coluna usada para particionar dados.
Limite superior da partição e limite inferior da partição (opcional): Especifique se deseja determinar o passo da partição. Isso não é para filtrar as linhas na tabela, todas as linhas no resultado da consulta serão particionadas e copiadas. Se não for especificado, a atividade de cópia detetará automaticamente o valor.

Por exemplo, se a coluna de partição "ID" tiver valores que variam de 1 a 100 e você definir o limite inferior como 20 e o limite superior como 80, com cópia paralela como 4, o serviço recuperará dados por 4 partições - IDs no intervalo <=20, [21, 50], [51, 80] e >=81, respectivamente.

Aqui estão mais consultas de exemplo para diferentes cenários:
1. Consulte toda a tabela:
SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition
2. Consulta a partir de uma tabela com seleção de colunas e filtros adicionais de cláusula where:
SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
3. Consulta com subconsultas:
SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>
4. Consulta com partição em subconsulta:
SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T

Práticas recomendadas para carregar dados com a opção de partição:

  1. Escolha uma coluna distinta como coluna de partição (como chave primária ou chave exclusiva) para evitar distorção de dados.
  2. Se a tabela tiver partição incorporada, use a opção de partição "Partições físicas da tabela" para obter um melhor desempenho.
  3. Se você usar o Tempo de Execução de Integração do Azure para copiar dados, poderá definir "Unidades de Integração de Dados (DIU)" (>4) maiores para utilizar mais recursos de computação. Verifique os cenários aplicáveis lá.
  4. "Grau de paralelismo de cópia" controlar os números de partição, definir este número muito grande às vezes prejudica o desempenho, recomendo definir este número como (DIU ou número de nós IR auto-hospedados) * (2 a 4).

Exemplo: carga completa a partir de uma mesa grande com partições físicas

"source": {
    "type": "AmazonRdsForSqlServerSource",
    "partitionOption": "PhysicalPartitionsOfTable"
}

Exemplo: consulta com partição de intervalo dinâmico

"source": {
    "type": "AmazonRdsForSqlServerSource",
    "query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
    "partitionOption": "DynamicRange",
    "partitionSettings": {
        "partitionColumnName": "<partition_column_name>",
        "partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
        "partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
    }
}

Exemplo de consulta para verificar a partição física

SELECT DISTINCT s.name AS SchemaName, t.name AS TableName, pf.name AS PartitionFunctionName, c.name AS ColumnName, iif(pf.name is null, 'no', 'yes') AS HasPartition
FROM sys.tables AS t
LEFT JOIN sys.objects AS o ON t.object_id = o.object_id
LEFT JOIN sys.schemas AS s ON o.schema_id = s.schema_id
LEFT JOIN sys.indexes AS i ON t.object_id = i.object_id 
LEFT JOIN sys.index_columns AS ic ON ic.partition_ordinal > 0 AND ic.index_id = i.index_id AND ic.object_id = t.object_id 
LEFT JOIN sys.columns AS c ON c.object_id = ic.object_id AND c.column_id = ic.column_id 
LEFT JOIN sys.partition_schemes ps ON i.data_space_id = ps.data_space_id 
LEFT JOIN sys.partition_functions pf ON pf.function_id = ps.function_id 
WHERE s.name='[your schema]' AND t.name = '[your table name]'

Se a tabela tiver partição física, você verá "HasPartition" como "sim" como a seguir.

Resultado da consulta SQL

Propriedades da atividade de pesquisa

Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.

Propriedades de atividade GetMetadata

Para saber detalhes sobre as propriedades, verifique a atividade GetMetadata

Usando sempre criptografado

Ao copiar dados de/para o Amazon RDS for SQL Server com Always Encrypted, siga as etapas abaixo:

  1. Armazene a Chave Mestra de Coluna (CMK) em um Cofre de Chaves do Azure. Saiba mais sobre como configurar o Always Encrypted usando o Azure Key Vault

  2. Certifique-se de conceder acesso ao cofre de chaves onde a Chave Mestra de Coluna (CMK) está armazenada. Consulte este artigo para obter as permissões necessárias.

  3. Crie um serviço vinculado para se conectar ao seu banco de dados SQL e habilite a função 'Sempre criptografado' usando a identidade gerenciada ou a entidade de serviço.

Resolver problemas de ligação

  1. Configure sua instância do Amazon RDS for SQL Server para aceitar conexões remotas. Inicie o Amazon RDS for SQL Server Management Studio, clique com o botão direito do mouse em servidor e selecione Propriedades. Selecione Conexões na lista e marque a caixa de seleção Permitir conexões remotas a este servidor .

    Ativar ligações remotas

    Para obter etapas detalhadas, consulte Configurar a opção de configuração do servidor de acesso remoto.

  2. Inicie o Amazon RDS for SQL Server Configuration Manager. Expanda Amazon RDS for SQL Server Network Configuration para a instância desejada e selecione Protocols for MSSQLSERVER. Os protocolos aparecem no painel direito. Habilite o TCP/IP clicando com o botão direito do mouse em TCP/IP e selecionando Ativar.

    Ativar TCP/IP

    Para obter mais informações e formas alternativas de ativar o protocolo TCP/IP, consulte Ativar ou desativar um protocolo de rede de servidor.

  3. Na mesma janela, clique duas vezes em TCP/IP para iniciar a janela Propriedades de TCP/IP.

  4. Mude para o separador Endereços IP. Desloque-se para baixo para ver a secção IPAll . Anote a porta TCP. O padrão é 1433.

  5. Crie uma regra para o Firewall do Windows na máquina para permitir o tráfego de entrada através dessa porta.

  6. Verificar conexão: para se conectar ao Amazon RDS for SQL Server usando um nome totalmente qualificado, use o Amazon RDS for SQL Server Management Studio de uma máquina diferente. Um exemplo é "<machine>.<domain>.corp.<company>.com,1433".

Atualizar a versão do Amazon RDS para SQL Server

Para atualizar a versão do Amazon RDS para SQL Server, na página Editar serviço vinculado, selecione Recomendado em Versão e configure o serviço vinculado consultando as propriedades do serviço vinculado para a versão recomendada.

A tabela abaixo mostra as diferenças entre o Amazon RDS para SQL Server usando a versão recomendada e a versão herdada.

Versão recomendada Versão legada
Suporte TLS 1.3 via encrypt como strict. TLS 1.3 não é suportado.

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