Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
do Banco de Dados SQL
doAzure Azure Instância
GerenciadaAzure Synapse Analytics Analytics
Platform System (PDW)
Ponto de extremidade de análise SQL no Microsoft Fabric
Warehouse no Banco de Dados SQLdo Microsoft Fabric
no Microsoft Fabric
Modifica uma fonte de dados externa usada para criar uma tabela externa, usada para recursos de virtualização de dados e PolyBase. A fonte de dados externa pode ser o Hadoop ou o WASBS (Armazenamento de Blobs do Azure) para SQL SERVER e o WASBS (Armazenamento de Blobs do Azure) ou o ABFSS/ADL (Azure Data Lake Storage) para o Azure Synapse Analytics.
A partir do SQL Server 2022 (16.x), não há mais suporte para as fontes de dados externas do Hadoop. Além disso, Armazenamento de Blobs do Azure e prefixos do Azure Data Lake Gen 2 alterados, confira a seguinte tabela:
| Fonte de dados externa | De | Para |
|---|---|---|
Azure Blob Storage |
wasb[s] |
abs |
ADLS Gen2 |
abfs[s] |
adls |
Convenções de sintaxe de Transact-SQL
Sintaxe
Modificar uma fonte de dados externa. Sintaxe para SQL Server (2016, 2017 e 2019) e PDW (Analytics Platform System).
-- Modify an external data source
-- Applies to: SQL Server (2016, 2017 and 2019) and APS
ALTER EXTERNAL DATA SOURCE data_source_name SET
{
LOCATION = '<prefix>://<path>[:<port>]' [,] |
RESOURCE_MANAGER_LOCATION = <'IP address;Port'> [,] |
CREDENTIAL = credential_name
}
[;]
Modifique uma fonte de dados externa apontando para o Armazenamento de Blobs do Azure. Sintaxe para SQL Server (2017 e 2019).
-- Modify an external data source pointing to Azure Blob storage
-- Applies to: SQL Server (2017 and 2019)
ALTER EXTERNAL DATA SOURCE data_source_name
SET
LOCATION = 'https://storage_account_name.blob.core.windows.net'
[, CREDENTIAL = credential_name ]
Modifique uma fonte de dados externa apontando para o Armazenamento de Blobs do Azure. Sintaxe para o SQL Server 2022 e versões posteriores.
-- Modify an external data source pointing to Azure Blob storage
-- Applies to: SQL Server 2022 and later versions
ALTER EXTERNAL DATA SOURCE data_source_name
SET
LOCATION = 'abs://storage_account_name.blob.core.windows.net'
[, CREDENTIAL = credential_name ]
Modifique uma fonte de dados externa apontando para o AdLS (Azure Data Lake Storage) Gen2. Sintaxe para o SQL Server 2022 e versões posteriores.
-- Modify an external data source pointing to Azure Data Lake Storage Gen2
-- Applies to: SQL Server 2022 and later versions
ALTER EXTERNAL DATA SOURCE data_source_name
SET
LOCATION = 'adls://storage_account_name.dfs.core.windows.net'
[, CREDENTIAL = credential_name ]
Modifique uma fonte de dados externa apontando para o Armazenamento de Blobs do Azure ou para o Azure Data Lake Storage. Sintaxe somente para o pool de SQL dedicado do Azure Synapse Analytics.
-- Modify an external data source pointing to Azure Blob storage or Azure Data Lake storage
-- Applies to: Azure Synapse Analytics dedicated SQL pool only
ALTER EXTERNAL DATA SOURCE data_source_name
SET
[LOCATION = '<location prefix>://<location path>']
[, CREDENTIAL = credential_name ]
Argumentos
data_source_name
Especifica o nome da fonte de dados definido pelo usuário. O nome deve ser exclusivo.
LOCALIZAÇÃO
Fornece o protocolo de conectividade, o caminho e a porta para a fonte de dados externa. Confira CREATE EXTERNAL DATA SOURCE (Transact-SQL) para opções de localização válidas.
RESOURCE_MANAGER_LOCATION = '<Endereço IP; Porta>'
Não se aplica ao Azure Synapse Analytics e ao SQL Server 2022 (16.x))
Especifica o local do Gerenciador de Recursos do Hadoop. Quando especificado, o otimizador de consulta pode escolher pré-processar os dados para uma consulta do PolyBase usando os recursos de computação do Hadoop. Essa é uma decisão baseada em custo. Chamado de pushdown de predicado, isso pode reduzir significativamente o volume de dados transferidos entre o Hadoop e o SQL e, portanto, melhorar o desempenho da consulta.
CREDENCIAL = Credential_Name
Especifica a credencial nomeada. Confira CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).
TIPO = [ HADOOP | BLOB_STORAGE ] **
Aplica-se a: SOMENTE SQL Server 2017 (14.x) e SQL Server 2019 (15.x).
Somente para operações em massa, LOCATION precisa ser a URL válida para o Armazenamento de Blobs do Azure. Não coloque um /parâmetro de assinatura de acesso compartilhado ou nome de arquivo no final da LOCATION URL.
A credencial que você usar deve ser criada usando SHARED ACCESS SIGNATURE como a identidade. Para mais informações sobre assinaturas de acesso compartilhado, consulte Usando SAS (Assinatura de Acesso Compartilhado).
Comentários
Somente uma única fonte pode ser modificada de cada vez. Solicitações simultâneas para modificar a mesma fonte fazem com que uma instrução precise esperar. No entanto, fontes diferentes podem ser modificados ao mesmo tempo. Essa instrução pode ser executada simultaneamente com outras instruções.
No Azure Synapse Analytics, as conexões com fontes de dados externas apontando para o Armazenamento de Blobs do Azure ou para o armazenamento do Azure Data Lake têm suporte apenas no pool SQL dedicado.
Permissões
Requer a permissão ALTER ANY EXTERNAL DATA SOURCE.
Importante
A permissão ALTER ANY EXTERNAL DATA SOURCE concede a qualquer entidade de segurança a capacidade de criar e modificar qualquer objeto de fonte de dados externa e, portanto, isso também concede a capacidade de acessar todas as credenciais no escopo do banco de dados no banco de dados. Essa permissão precisa ser considerada como altamente privilegiada e, portanto, ser concedida somente para entidades de segurança confiáveis no sistema.
Exemplos
O exemplo a seguir altera o local e a localização do Resource Manager de uma fonte de dados existente.
Não se aplica a: SQL Server 2022 (16.x).
ALTER EXTERNAL DATA SOURCE hadoop_eds SET
LOCATION = 'hdfs://10.10.10.10:8020',
RESOURCE_MANAGER_LOCATION = '10.10.10.10:8032'
;
O exemplo a seguir altera a credencial para conectar-se a uma fonte de dados existente.
ALTER EXTERNAL DATA SOURCE hadoop_eds SET
CREDENTIAL = new_hadoop_user
;
O exemplo a seguir altera a credencial para uma LOCATION nova. Este exemplo é uma fonte de dados externa criada para o Azure Synapse Analytics.
ALTER EXTERNAL DATA SOURCE AzureStorage_west SET
LOCATION = 'wasbs://loadingdemodataset@updatedproductioncontainer.blob.core.windows.net',
CREDENTIAL = AzureStorageCredential