Esportare dati in SQL
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati
L'esportazione di dati in SQL consente di eseguire una query e di inviare i risultati a una tabella in un database SQL, ad esempio un database SQL ospitato dal servizio database SQL di Azure.
Autorizzazioni
Per eseguire questo comando, è necessario disporre almeno delle autorizzazioni di amministratore tabella .
Sintassi
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...]] )
<|
quesito
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
async |
string |
Se specificato, il comando viene eseguito in modo asincrono. | |
SqlTableName | string |
✔️ | Nome della tabella di database SQL in cui inserire i dati. Per proteggersi dagli attacchi injection, questo nome è limitato. |
SqlConnectionString | string |
✔️ | Il stringa di connessione per l'endpoint e il database SQL. La stringa deve seguire il ADO.NET formato stringa di connessione. Per motivi di sicurezza, la stringa di connessione è limitata. |
PropertyName, PropertyValue | string |
Elenco di proprietà facoltative. |
Proprietà supportate
Nome | Valori | Descrizione |
---|---|---|
firetriggers |
true oppure false |
Se true , indica al sistema di destinazione di attivare trigger INSERT definiti nella tabella SQL. Il valore predefinito è false . Per altre informazioni, vedere BULK INSERT e System.Data.SqlClient.SqlBulkCopy. |
createifnotexists |
true oppure false |
Se true , la tabella SQL di destinazione viene creata se non esiste già. La primarykey proprietà deve essere specificata in questo caso per indicare la colonna del risultato che è la chiave primaria. Il valore predefinito è false . |
primarykey |
Se createifnotexists è true , questa proprietà indica il nome della colonna nel risultato usato come chiave primaria della tabella SQL se viene creato da questo comando. |
|
persistDetails |
bool |
Indica che il comando deve rendere persistenti i risultati (vedere async flag). L'impostazione predefinita è true in esecuzione asincrona, ma può essere disattivata se il chiamante non richiede i risultati. L'impostazione predefinita è false in esecuzioni sincrone, ma può essere attivata. |
token |
string |
Token di accesso Microsoft Entra che Kusto inoltra all'endpoint SQL per l'autenticazione. Se impostato, il stringa di connessione SQL non deve includere informazioni di autenticazione come Authentication , User ID o Password . |
Autenticazione e autorizzazione
Il metodo di autenticazione si basa sul stringa di connessione fornito e le autorizzazioni necessarie per accedere al database SQL variano a seconda del metodo di autenticazione.
I metodi di autenticazione supportati per l'esportazione dei dati in SQL sono l'autenticazione integrata di Microsoft Entra (rappresentazione) e l'autenticazione nome utente/password. Per l'autenticazione di rappresentazione, assicurarsi che l'entità disponga delle autorizzazioni seguenti per il database:
- Tabella esistente: tabella UPDATE e INSERT
- Nuova tabella: CREATE, UPDATE e INSERT
Nota
Se possibile, il metodo di autenticazione preferito è l'autenticazione integrata (rappresentazione) di Microsoft Entra.
Limitazioni e restrizioni
Esistono alcune limitazioni e restrizioni per l'esportazione dei dati in un database SQL:
Kusto è un servizio cloud, quindi l'stringa di connessione deve puntare a un database accessibile dal cloud. In particolare, non è possibile esportare in un database locale perché non è accessibile dal cloud pubblico.
Kusto supporta l'autenticazione integrata di Active Directory quando l'entità chiamante è un'entità Microsoft Entra (
aaduser=
oaadapp=
). In alternativa, Kusto supporta anche la fornitura delle credenziali per il database SQL come parte del stringa di connessione. Altri metodi di autenticazione non sono supportati. L'identità presentata al database SQL deriva sempre dal chiamante del comando non dall'identità del servizio Kusto stessa.Se la tabella di destinazione nel database SQL esiste, deve corrispondere allo schema dei risultati della query. In alcuni casi, ad esempio il database SQL di Azure, significa che la tabella ha una colonna contrassegnata come colonna Identity.
L'esportazione di grandi volumi di dati potrebbe richiedere molto tempo. È consigliabile impostare la tabella SQL di destinazione per la registrazione minima durante l'importazione bulk. Vedere SQL Server motore di database > ... > Funzionalità > di database: importazione ed esportazione bulk dei dati.
L'esportazione dei dati viene eseguita usando la copia bulk di SQL e non offre alcuna garanzia transazionale nel database SQL di destinazione. Vedere Transazioni e operazioni di copia bulk.
Il nome della tabella SQL è limitato a un nome costituito da lettere, cifre, spazi, caratteri di sottolineatura (
_
), punti () e trattini (.
-
).Il stringa di connessione SQL è limitato come segue:
Persist Security Info
è impostato in modo esplicito su ,false
è impostatoEncrypt
sutrue
eTrust Server Certificate
è impostato sufalse
.È possibile specificare la proprietà chiave primaria nella colonna durante la creazione di una nuova tabella SQL. Se la colonna è di tipo
string
, SQL potrebbe rifiutare di creare la tabella a causa di altre limitazioni nella colonna chiave primaria. La soluzione alternativa consiste nel creare manualmente la tabella in SQL prima di esportare i dati. Questa limitazione esiste perché le colonne chiave primaria in SQL non possono avere dimensioni illimitate, ma le colonne della tabella Kusto non hanno limitazioni di dimensioni dichiarate.
Documentazione relativa all'autenticazione integrata di Microsoft Entra nel database di Azure
Esempi
Esportazione asincrona nella tabella SQL
Nell'esempio seguente Kusto esegue la query e quindi esporta il primo set di record generato dalla query nella tabella MySqlTable
del database MyDatabase
nel server 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)
Esportare nella tabella SQL se non esiste
Nell'esempio seguente Kusto esegue la query e quindi esporta il primo set di record generato dalla query nella tabella MySqlTable
del database MyDatabase
nel server myserver
.
La tabella di destinazione viene creata se non esiste nel database di destinazione.
.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
Contenuto correlato
- inserimento da di query
- Panoramica dei comandi di gestione
- Esporta in una tabella esterna
- Esportare i dati nell'archiviazione cloud
- Creare e modificare tabelle esterne sql di Azure