Exportar dados para SQL
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer
Exportar dados para SQL permite executar uma consulta e ter 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 de administrador de tabela para executar esse comando.
Sintaxe
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...])
] <|
consulta
Saiba mais sobre convenções de sintaxe.
Parâmetros
Designação | Tipo | Necessário | 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, este 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 de cadeia de conexão ADO.NET . Por motivos de segurança, a cadeia de conexão é restrita. |
PropertyName, PropertyValue | string |
Uma lista de propriedades opcionais. |
Propriedades suportadas
Designação | 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 será criada se ainda não existir; A propriedade primarykey deve ser fornecida neste caso para indicar a coluna de resultados que é a chave primária. O padrão é false . |
primarykey |
Se createifnotexists for true , essa propriedade indicará o nome da coluna no resultado que será usada como chave primária da tabela SQL se 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 Kusto encaminha para o ponto de extremidade 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 suportados para exportar dados para SQL são de autenticação integrada (representação) do Microsoft Entra e 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 que é acessível a partir da nuvem. (Em particular, não é possível exportar para um banco de dados local, pois ele não é acessível a partir da nuvem pública.)
Kusto suporta autenticação integrada do Ative Directory quando a entidade de chamada é uma entidade de segurança Microsoft Entra (
aaduser=
ouaadapp=
). Como alternativa, o Kusto também oferece 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 comando e não da identidade do serviço Kusto em si.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.
A exportação de 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 é realizada usando cópia em massa do 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ífenes (-
).A cadeia de conexão SQL é restrita da seguinte forma:
Persist Security Info
está explicitamente definida comofalse
,Encrypt
está definida comotrue
eTrust Server Certificate
está 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 pode 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.
Banco de dados do Azure Documentação de autenticação integrada do Microsoft Entra
Exemplos
Exportação assíncrona para tabela SQL
No exemplo a seguir, Kusto executa a consulta e, em seguida, 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, Kusto executa a consulta e, em seguida, 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 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
- Ingerir a partir da consulta
- Visão geral dos comandos de gerenciamento de
- Exportar para uma tabela externa
- Exportar dados para de armazenamento em nuvem
- Criar e alterar tabelas externas SQL do Azure