Creare e modificare tabelle SQL esterneCreate and alter external SQL tables

Crea o modifica una tabella SQL esterna nel database in cui viene eseguito il comando.Creates or alters an external SQL table in the database in which the command is executed.

SintassiSyntax

( .create | .alter | .create-or-alter ) external table TableName ([ColumnName: ColumnType],...)(.create | .alter | .create-or-alter) external table TableName ([columnName:columnType], ...)
kind = sqlkind = sql
table``= Sqltablenametable = SqlTableName
(SqlServerConnectionString)(SqlServerConnectionString)
[ with ( [ docstring = Documentazione] [ , folder = FolderName], property_name = valore , ... ) ][with ([docstring = Documentation] [, folder = FolderName], property_name = value,...)]

ParametriParameters

  • TableName : nome della tabella esterna.TableName - External table name. Deve seguire le regole per i nomi delle entità.Must follow the rules for entity names. Una tabella esterna non può avere lo stesso nome di una tabella normale nello stesso database.An external table can't have the same name as a regular table in the same database.
  • Sqltablenamename : nome della tabella SQL.SqlTableName - The name of the SQL table.
  • SqlServerConnectionString : stringa di connessione a SQL Server.SqlServerConnectionString - The connection string to the SQL server. Può essere uno dei metodi seguenti:Can be one of the following methods:
    • Autenticazione integrata AAD ( Authentication="Active Directory Integrated" ): l'utente o l'applicazione esegue l'autenticazione tramite AAD per kusto e lo stesso token viene quindi usato per accedere all'endpoint di rete SQL Server.AAD-integrated authentication (Authentication="Active Directory Integrated"): The user or application authenticates via AAD to Kusto, and the same token is then used to access the SQL Server network endpoint.
    • Autenticazione con nome utente/password ( User ID=...; Password=...; ).Username/Password authentication (User ID=...; Password=...;). Se per l' esportazione continuaviene utilizzata la tabella esterna, è necessario eseguire l'autenticazione utilizzando questo metodo.If the external table is used for continuous export, authentication must be performed by using this method.

Avviso

Le stringhe di connessione e le query che includono informazioni riservate devono essere offuscate, in modo che vengano omesse da qualsiasi traccia kusto.Connection strings and queries that include confidential information should be obfuscated so that they'll be omitted from any Kusto tracing. Per altre informazioni, vedere valori letterali stringa offuscata.For more information, see obfuscated string literals.

Proprietà facoltativeOptional properties

ProprietàProperty TypeType DescrizioneDescription
folder string Cartella della tabella.The table's folder.
docString string Stringa che documenta la tabella.A string documenting the table.
firetriggers true/false Se true , indica al sistema di destinazione di attivare i trigger di inserimento definiti nella tabella SQL.If true, instructs the target system to fire INSERT triggers defined on the SQL table. Il valore predefinito è false.The default is false. Per ulteriori informazioni, vedere BULK INSERT e System. Data. SqlClient. SqlBulkCopy)(For more information, see BULK INSERT and System.Data.SqlClient.SqlBulkCopy)
createifnotexists true/ false Se true , la tabella SQL di destinazione verrà creata se non esiste già. primarykey in questo caso, è necessario specificare la proprietà per indicare la colonna risultato che rappresenta la chiave primaria.If true, the target SQL table will be created if it doesn't already exist; the primarykey property must be provided in this case to indicate the result column that is the primary key. Il valore predefinito è false.The default is false.
primarykey string Se createifnotexists è true , il nome della colonna risultante verrà usato come chiave primaria della tabella SQL se viene creato da questo comando.If createifnotexists is true, the resulting column name will be used as the SQL table's primary key if it is created by this command.

Nota

  • Se la tabella esiste, il .create comando avrà esito negativo con un errore.If the table exists, the .create command will fail with an error. Utilizzare .create-or-alter o .alter per modificare le tabelle esistenti.Use .create-or-alter or .alter to modify existing tables.
  • La modifica dello schema o del formato di una tabella SQL esterna non è supportata.Altering the schema or format of an external SQL table is not supported.

Richiede l' autorizzazione dell'utente di database per .create e l'autorizzazione di amministratore della tabella per .alter .Requires database user permission for .create and table admin permission for .alter.

EsempioExample

.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
)  

OutputOutput

TableNameTableName TableTypeTableType CartellaFolder DocStringDocString ProprietàProperties
MySqlExternalTableMySqlExternalTable SqlSql ExternalTablesExternalTables DocsDocs {{
"TargetEntityKind": "SQLTable '","TargetEntityKind": "sqltable`",
"TargetEntityName": "MySqlTable","TargetEntityName": "MySqlTable",
"TargetEntityConnectionString": "server = TCP:myserver. database. Windows. NET, 1433; Authentication = Active Directory Integrated; catalogo iniziale = database; ","TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433;Authentication=Active Directory Integrated;Initial Catalog=mydatabase;",
"FireTriggers": true,"FireTriggers": true,
"CreateIfNotExists": true,"CreateIfNotExists": true,
"PrimaryKey": "x""PrimaryKey": "x"
}}

Esecuzione di query su una tabella esterna di tipo SQLQuerying an external table of type SQL

L'esecuzione di query su una tabella SQL esterna è supportata.Querying an external SQL table is supported. Vedere esecuzione di query su tabelle esterne.See querying external tables.

Nota

L'implementazione della query della tabella esterna SQL eseguirà l' SELECT x, s FROM MySqlTable istruzione, dove x e s sono nomi di colonna della tabella esterna.SQL external table query implementation will execute SELECT x, s FROM MySqlTable statement, where x and s are external table column names. Il resto della query verrà eseguito sul lato kusto.The rest of the query will execute on the Kusto side.

Si consideri la query della tabella esterna seguente:Consider the following external table query:

external_table('MySqlExternalTable') | count

Kusto eseguirà una SELECT x, s FROM MySqlTable query nel database SQL, seguito da un conteggio sul lato kusto.Kusto will execute a SELECT x, s FROM MySqlTable query to the SQL database, followed by a count on Kusto side. In questi casi, le prestazioni dovrebbero essere migliori se scritte in T-SQL direttamente ( SELECT COUNT(1) FROM MySqlTable ) ed eseguite usando il plug-in sql_request, anziché usare la funzione tabella esterna.In such cases, performance is expected to be better if written in T-SQL directly (SELECT COUNT(1) FROM MySqlTable) and executed using the sql_request plugin, instead of using the external table function. Analogamente, i filtri non vengono inseriti nella query SQL.Similarly, filters are not pushed to the SQL query.

Usare la tabella esterna per eseguire una query sulla tabella SQL quando la query richiede la lettura dell'intera tabella (o delle colonne rilevanti) per un'ulteriore esecuzione sul lato kusto.Use the external table to query the SQL table when the query requires reading the entire table (or relevant columns) for further execution on Kusto side. Quando una query SQL può essere ottimizzata in T-SQL, usare il plug-in sql_request.When an SQL query can be optimized in T-SQL, use the sql_request plugin.

Passaggi successiviNext steps