Creare e modificare tabelle esterne SQL
Crea o modifica una tabella esterna SQL nel database in cui viene eseguito il comando.
Nota
- Se la tabella esiste, il
.create
comando avrà esito negativo con un errore. Usare.create-or-alter
o.alter
modificare le tabelle esistenti. - La modifica dello schema di una tabella SQL esterna non è supportata.
Tipi di tabella esterna SQL supportati
- Microsoft SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Autorizzazioni
Per .create
richiedere almeno le autorizzazioni utente del database e .alter
per richiedere almeno autorizzazioni di tabella Amministrazione.
Per .create-or-alter
una tabella esterna tramite l'autenticazione dell'identità gestita sono necessarie autorizzazioni AllDatabasesAdmin . Attualmente, questo è rilevante solo per Microsoft SQL Server tabelle esterne.
Sintassi
(.create
.create-or-alter
| .alter
| ) external
table
Schema)
=
kind
sql
TableName[ SqlTableName(
] SqlConnectionString)
[with
table
(
sqlDialect
=
=
[ SqlDialect ] ,
(
[ Property,
... ]])
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Tipo | Obbligatoria | Descrizione |
---|---|---|---|
TableName | string |
✔️ | Nome della tabella esterna. Il nome deve seguire le regole per i nomi di entità e una tabella esterna non può avere lo stesso nome di una tabella regolare nello stesso database. |
Schema | string |
✔️ | Lo schema dei dati esterni è un elenco delimitato da virgole di uno o più nomi di colonne e tipi di dati, in cui ogni elemento segue il formato: ColumnName: ColumnType. |
SqlTableName | string |
Nome della tabella SQL non incluso il nome del database. Ad esempio, "MySqlTable" e non "db1. MySqlTable". Se il nome della tabella contiene un punto ("."), usare la notazione ['Name.of.the.table'].Questa specifica è necessaria per tutti i tipi di tabelle, ad eccezione di Cosmos DB, come per Cosmos DB, il nome della raccolta fa parte del stringa di connessione. | |
Sqlconnectionstring | string |
✔️ | Stringa di connessione al server SQL. |
SqlDialect | string |
Indica il tipo di tabella esterna SQL. Microsoft SQL Server è il valore predefinito. Per MySQL specificare MySQL . Per PostgreSQL specificare PostgreSQL . Per Cosmos DB specificare CosmosDbSql . |
|
Proprietà | string |
Coppia di proprietà key-value nel formato PropertyName= PropertyValue. Vedere proprietà facoltative. |
Avviso
Le stringhe di connessione e le query che includono informazioni riservate devono essere offuscate in modo che vengano omesse da qualsiasi traccia Kusto. Per altre informazioni, vedere valori letterali stringa offuscati.
Proprietà facoltative
Proprietà | Type | Descrizione |
---|---|---|
folder |
string |
Cartella della tabella. |
docString |
string |
Stringa che documenta la tabella. |
firetriggers |
true /false |
Se true , indica al sistema di destinazione di generare trigger INSERT definiti nella tabella SQL. Il valore predefinito è false . Per altre informazioni, vedere BULK INSERT e System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
Se true , la tabella SQL di destinazione verrà creata se non esiste già. La primarykey proprietà deve essere fornita in questo caso per indicare la colonna risultato che è la chiave primaria. Il valore predefinito è false . |
primarykey |
string |
Se createifnotexists è true , il nome della colonna risultante verrà usato come chiave primaria della tabella SQL se viene creata da questo comando. |
Autenticazione e autorizzazione
Per interagire con una tabella SQL esterna da Azure Esplora dati, è necessario specificare i mezzi di autenticazione come parte di SqlConnectionString. SqlConnectionString definisce la risorsa per accedere alle informazioni di autenticazione e alle relative informazioni di autenticazione.
Per altre informazioni, vedere Metodi di autenticazione della tabella esterna SQL.
Nota
Se la tabella esterna viene usata per l'esportazione continua, l'autenticazione deve essere eseguita tramite nome utente/password o identità gestite.
Esempio
Negli esempi seguenti viene illustrato come creare ogni tipo di tabella esterna SQL.
SQL Server
.create external table MySqlExternalTable (x:long, s:string)
kind=sql
table=MySqlTable
(
h@'Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=mydatabase;'
)
with
(
docstring = "Docs",
folder = "ExternalTables",
createifnotexists = true,
primarykey = x,
firetriggers=true
)
Output
TableName | TableType | Cartella | DocString | Proprietà |
---|---|---|---|---|
MySqlExternalTable | Sql | ExternalTables | Docs | { "TargetEntityKind": "sqltable'", "TargetEntityName": "MySqlTable", "TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=Active Directory Integrated; Catalogo iniziale=mydatabase;", "FireTriggers": true, "CreateIfNotExists": true, "PrimaryKey": "x" } |
MySQL
.create external table MySqlExternalTable (x:long, s:string)
kind=sql
table=MySqlTable
(
h@'Server=myserver.mysql.database.windows.net;Port = 3306;UID = USERNAME;Pwd = PASSWORD;Database = mydatabase;'
)
with
(
sqlDialect = "MySql",
docstring = "Docs",
folder = "ExternalTables",
)
PostgreSQL
.create external table PostgreSqlExternalTable (x:long, s:string)
kind=sql
table=PostgreSqlTable
(
h@'Host = hostname.postgres.database.azure.com; Port = 5432; Database= db; User Id=user; Password=pass; Timeout = 30;'
)
with
(
sqlDialect = "PostgreSQL",
docstring = "Docs",
folder = "ExternalTables",
)
Cosmos DB
.create external table CosmosDBSQLExternalTable (x:long, s:string)
kind=sql
(
h@'AccountEndpoint=https://cosmosdbacc.documents.azure.com/;Database=MyDatabase;Collection=MyCollection;AccountKey=' h'R8PM...;'
)
with
(
sqlDialect = "CosmosDbSQL",
docstring = "Docs",
folder = "ExternalTables",
)
Contenuti correlati
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per