Creación y modificación de tablas externas de SQL
Crea o modifica una tabla externa de SQL en la base de datos en la que se ejecuta el comando.
Nota
- Si la tabla existe, se producirá un error en el
.create
comando. Use.create-or-alter
o.alter
para modificar las tablas existentes. - No se admite la modificación del esquema de una tabla SQL externa.
Tipos de tabla externa de SQL admitidos
- Microsoft SQL Server
- MySQL
- PostgreSQL
- Cosmos DB
Permisos
Para .create
requerir al menos permisos de usuario de base de datos y para .alter
requerir al menos permisos de Table Administración.
Para .create-or-alter
una tabla externa mediante la autenticación de identidad administrada, se requieren permisos AllDatabasesAdmin . Actualmente, esto solo es relevante para Las tablas externas de Microsoft SQL Server.
Syntax
(.create
.alter
| .create-or-alter
| ) external
table
Esquema)
kind
=
sql
TableName(
[ table
=
SqlTableName ] (
SqlConnectionString)
[with
(
[ sqlDialect
=
SqlDialect ] ,
[ Propiedad,
... ])
]
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Tipo | Requerido | Descripción |
---|---|---|---|
TableName | string |
✔️ | Nombre de la tabla externa. El nombre debe seguir las reglas para los nombres de entidad y una tabla externa no puede tener el mismo nombre que una tabla normal en la misma base de datos. |
Esquema | string |
✔️ | El esquema de datos externos es una lista separada por comas de uno o varios nombres de columna y tipos de datos, donde cada elemento sigue el formato: ColumnName: ColumnType. |
SqlTableName | string |
Nombre de la tabla SQL que no incluye el nombre de la base de datos. Por ejemplo, "MySqlTable" y no "db1". MySqlTable". Si el nombre de la tabla contiene un punto ("."), use la notación ['Name.of.the.table'].Esta especificación es necesaria para todos los tipos de tablas excepto para Cosmos DB, ya que para Cosmos DB el nombre de la colección forma parte del cadena de conexión. |
|
SqlConnectionString | string |
✔️ | El cadena de conexión al servidor SQL Server. |
SqlDialect | string |
Indica el tipo de tabla externa de SQL. Microsoft SQL Server es el valor predeterminado. En MySQL, especifique MySQL . En PostgreSQL, especifique PostgreSQL . En Cosmos DB, especifique CosmosDbSql . |
|
Propiedad | string |
Un par de propiedades clave-valor con el formato PropertyName= PropertyValue. Consulte las propiedades opcionales. |
Advertencia
Las cadenas de conexión y las consultas que incluyen información confidencial deben ofuscarse para que se omitan de cualquier seguimiento de Kusto. Para obtener más información, consulte literales de cadena ofuscados.
Propiedades opcionales
Propiedad | Tipo | Descripción |
---|---|---|
folder |
string |
Carpeta de la tabla. |
docString |
string |
Cadena que documenta la tabla. |
firetriggers |
true /false |
Si true es , indica al sistema de destino que active los desencadenadores INSERT definidos en la tabla SQL. El valor predeterminado es false . (Para obtener más información, vea BULK INSERT y System.Data.SqlClient.SqlBulkCopy) |
createifnotexists |
true / false |
Si true es , se creará la tabla SQL de destino si aún no existe; la primarykey propiedad debe proporcionarse en este caso para indicar la columna de resultados que es la clave principal. El valor predeterminado es false . |
primarykey |
string |
Si createifnotexists es true , el nombre de columna resultante se usará como clave principal de la tabla SQL si este comando lo crea. |
Autenticación y autorización
Para interactuar con una tabla SQL externa de Azure Data Explorer, debe especificar los medios de autenticación como parte de SqlConnectionString. SqlConnectionString define el recurso para acceder a y su información de autenticación.
Para más información, consulte Métodos de autenticación de tablas externas de SQL.
Nota
Si la tabla externa se usa para la exportación continua, la autenticación se debe realizar mediante el nombre de usuario o la contraseña o las identidades administradas.
Ejemplos
En los ejemplos siguientes se muestra cómo crear cada tipo de tabla externa de 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
)
Salida
TableName | TableType | Carpeta | DocString | Propiedades |
---|---|---|---|---|
MySqlExternalTable | Sql | ExternalTables | Docs | { "TargetEntityKind": "sqltable'", "TargetEntityName": "MySqlTable", "TargetEntityConnectionString": "Server=tcp:myserver.database.windows.net,1433; Authentication=Active Directory Integrated; Initial Catalog=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",
)
Contenido relacionado
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de