Exportar dados para o SQL
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
Exportar dados para SQL permite que você execute uma consulta e tenha seus resultados enviados para uma tabela em um banco de dados SQL, como um banco de dados SQL hospedado pelo serviço Banco de Dados SQL do Azure.
Permissões
Você deve ter pelo menos permissões de Administrador de Tabela para executar este comando.
Sintaxe
.export
[async
] to
sql
sqlTableName sqlConnectionString [with
(
propertyName=
propertyValue [,
...]])
<|
consulta
Saiba mais sobre as convenções de sintaxe.
Parâmetros
Nome | Digitar | Obrigatória | Descrição |
---|---|---|---|
async |
string |
Se especificado, o comando é executado de forma assíncrona. | |
SqlTableName | string |
✔️ | O nome da tabela do banco de dados SQL na qual inserir os dados. Para proteger contra ataques de injeção, esse nome é restrito. |
SqlConnectionString | string |
✔️ | A cadeia de conexão para o ponto de extremidade SQL e o banco de dados. A cadeia de caracteres deve seguir o formato da ADO.NET cadeia de conexão. Por motivos de segurança, a cadeia de conexão é restrita. |
PropertyName, PropertyValue | string |
Uma lista de propriedades opcionais. |
Propriedades aceitas
Nome | Valores | Descrição |
---|---|---|
firetriggers |
true ou false |
Se true , instrui o sistema de destino a disparar gatilhos INSERT definidos na tabela SQL. O padrão é false . Para obter mais informações, consulte BULK INSERT e System.Data.SqlClient.SqlBulkCopy. |
createifnotexists |
true ou false |
Se true , a tabela SQL de destino for criada se ainda não existir; a primarykey propriedade deverá ser fornecida nesse caso para indicar a coluna de resultado que é a chave primária. O padrão é false . |
primarykey |
Se createifnotexists for true , essa propriedade indicará o nome da coluna no resultado usado como a chave primária da tabela SQL se ela for criada por esse comando. |
|
persistDetails |
bool |
Indica que o comando deve persistir seus resultados (consulte async sinalizador). O padrão é true em execuções assíncronas, mas pode ser desativado se o chamador não exigir os resultados. O padrão é false em execuções síncronas, mas pode ser ativado. |
token |
string |
O token de acesso do Microsoft Entra que o Kusto encaminha para o ponto de extremidade do SQL para autenticação. Quando definida, a cadeia de conexão SQL não deve incluir informações de autenticação como Authentication , User ID , ou Password . |
Autenticação e autorização
O método de autenticação é baseado na cadeia de conexão fornecida e as permissões necessárias para acessar o banco de dados SQL variam dependendo do método de autenticação.
Os métodos de autenticação com suporte para exportar dados para SQL são a autenticação integrada (representação) do Microsoft Entra e a autenticação de nome de usuário/senha. Para autenticação de representação, certifique-se de que a entidade de segurança tenha as seguintes permissões no banco de dados:
- Tabela existente: tabela UPDATE e INSERT
- Nova tabela: CREATE, UPDATE e INSERT
Observação
Sempre que possível, o método preferencial de autenticação é a autenticação integrada (representação) do Microsoft Entra.
Limitações e restrições
Há algumas limitações e restrições ao exportar dados para um banco de dados SQL:
Kusto é um serviço de nuvem, portanto, a cadeia de conexão deve apontar para um banco de dados acessível na nuvem. (Em particular, não é possível exportar para um banco de dados local, pois ele não pode ser acessado na nuvem pública.)
O Kusto oferece suporte à autenticação integrada do Active Directory quando a entidade de chamada é uma entidade de segurança do Microsoft Entra (
aaduser=
ouaadapp=
). Como alternativa, o Kusto também dá suporte ao fornecimento de credenciais para o banco de dados SQL como parte da cadeia de conexão. Não há suporte para outros métodos de autenticação. A identidade que está sendo apresentada ao banco de dados SQL sempre emana do chamador de comandos, não da própria identidade do serviço Kusto.Se a tabela de destino no banco de dados SQL existir, ela deverá corresponder ao esquema de resultado da consulta. Em alguns casos, como o Banco de Dados SQL do Azure, isso significa que a tabela tem uma coluna marcada como uma coluna de identidade.
Exportar grandes volumes de dados pode levar muito tempo. É recomendável que a tabela SQL de destino seja definida para registro mínimo durante a importação em massa. Consulte Mecanismo > de Banco de Dados do SQL Server... > Recursos > de banco de dados Importação e exportação em massa de dados.
A exportação de dados é executada usando a cópia em massa SQL e não fornece garantias transacionais no banco de dados SQL de destino. Consulte Operações de transação e cópia em massa.
O nome da tabela SQL é restrito a um nome que consiste em letras, dígitos, espaços, sublinhados (
_
), pontos (.
) e hífens (-
).A cadeia de conexão SQL é restrita da seguinte maneira:
Persist Security Info
é explicitamente definida comofalse
,Encrypt
é definida comotrue
eTrust Server Certificate
é definida comofalse
.A propriedade de chave primária na coluna pode ser especificada ao criar uma nova tabela SQL. Se a coluna for do tipo
string
, o SQL poderá se recusar a criar a tabela devido a outras limitações na coluna de chave primária. A solução alternativa é criar manualmente a tabela em SQL antes de exportar os dados. Essa limitação existe porque as colunas de chave primária no SQL não podem ter tamanho ilimitado, mas as colunas da tabela Kusto não têm limitações de tamanho declaradas.
Documentação de autenticação integrada do Microsoft Entra do banco de dados do Azure
Exemplos
Exportação assíncrona para a tabela SQL
No exemplo a seguir, o Kusto executa a consulta e exporta o primeiro conjunto de registros produzido pela consulta para a tabela MySqlTable
no banco de dados MyDatabase
no servidor myserver
.
.export async to sql MySqlTable
h@"Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=MyDatabase;Connection Timeout=30;"
<| print Id="d3b68d12-cbd3-428b-807f-2c740f561989", Name="YSO4", DateOfBirth=datetime(2017-10-15)
Exportar para a tabela SQL se ela não existir
No exemplo a seguir, o Kusto executa a consulta e exporta o primeiro conjunto de registros produzido pela consulta para a tabela MySqlTable
no banco de dados MyDatabase
no servidor myserver
.
A tabela de destino será criada se ela não existir no banco de dados de destino.
.export async to sql ['dbo.MySqlTable']
h@"Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=MyDatabase;Connection Timeout=30;"
with (createifnotexists="true", primarykey="Id")
<| print Message = "Hello World!", Timestamp = now(), Id=12345678
Conteúdo relacionado
- ingestão de de consulta
- Visão geral dos comandos de Gerenciamento de
- exportar para uma tabela externa
- Exportar dados para o armazenamento em nuvem
- Criar e alterar tabelas externas do SQL do Azure