Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões
posteriores Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL analytics endpoint em Microsoft Fabric
Warehouse em Microsoft Fabric SQL
database in Microsoft Fabric
Modifica uma fonte de dados externa usada para criar uma tabela externa, usada para PolyBase e recursos de virtualização de dados. A fonte de dados externa pode ser Hadoop ou Azure Blob Storage (WASBS) para SQL SERVER e Azure Blob Storage (WASBS) ou Azure Data Lake storage (ABFSS/ADL) para Azure Synapse Analytics.
A partir do SQL Server 2022 (16.x), as fontes de dados externas do Hadoop não são mais suportadas. Além disso, os prefixos do Armazenamento de Blobs do Azure e do Azure Data Lake Gen 2 foram alterados, consulte a tabela a seguir:
| Fonte de dados externa | De | Para |
|---|---|---|
Azure Blob Storage |
wasb[s] |
abs |
ADLS Gen2 |
abfs[s] |
adls |
Transact-SQL convenções de sintaxe
Sintaxe
Modificar uma fonte de dados externa. Sintaxe para SQL Server (2016, 2017 e 2019) e Analytics Platform System (PDW).
-- 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 Blob 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 Blob do Azure. Sintaxe para 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 Azure Data Lake Storage (ADLS) Gen2. Sintaxe para 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 Armazenamento do Azure Data Lake. Sintaxe apenas para o pool 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 definido pelo usuário para a fonte de dados. O nome tem de ser exclusivo.
LOCALIZAÇÃO
Fornece o protocolo, o caminho e a porta de conectividade para a fonte de dados externa. Consulte CREATE EXTERNAL DATA SOURCE (Transact-SQL) para obter opções de localização válidas.
RESOURCE_MANAGER_LOCATION = «<Endereço IP; Porto>»
Não se aplica ao Azure Synapse Analytics e ao SQL Server 2022 (16.x))
Especifica o local do Hadoop Resource Manager. Quando especificado, o otimizador de consulta pode optar por pré-processar dados para uma consulta PolyBase usando os recursos de computação do Hadoop. Trata-se de uma decisão baseada nos custos. Chamado de pushdown de predicado, isso pode reduzir significativamente o volume de dados transferidos entre Hadoop e SQL e, portanto, melhorar o desempenho da consulta.
CREDENCIAL = Credential_Name
Especifica a credencial nomeada. Consulte CREATE DATABASE SCOPED CREDENTIAL (Transact-SQL).
TIPO = [ HADOOP | BLOB_STORAGE ] **
Aplica-se a: SQL Server 2017 (14.x) e SQL Server 2019 (15.x) apenas.
Apenas para operações em massa, LOCATION deve ser válida a URL para o armazenamento de Blob do Azure. Não coloque um nome de arquivo ou parâmetros /de assinatura de acesso compartilhado no final da LOCATION URL.
A credencial que você usa deve ser criada usando SHARED ACCESS SIGNATURE como identidade. Para obter mais informações sobre assinaturas de acesso compartilhado, consulte Usando assinaturas de acesso compartilhado (SAS).
Observações
Apenas uma única fonte pode ser modificada de cada vez. Solicitações simultâneas para modificar a mesma fonte fazem com que uma instrução aguarde. No entanto, diferentes fontes podem ser modificadas ao mesmo tempo. Esta 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 Blob do Azure ou o armazenamento do Azure Data Lake são suportadas 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, também concede a capacidade de acessar todas as credenciais de escopo do banco de dados no banco de dados. Essa permissão deve ser considerada altamente privilegiada e, portanto, deve ser concedida apenas a entidades confiáveis no sistema.
Exemplos
O exemplo a seguir altera o local e o local do Gerenciador de Recursos de uma fonte de dados existente.
Não se aplica ao 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 se conectar 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 um novo LOCATION. 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