Exportación de datos a SQL
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer
Exportar datos a SQL permite ejecutar una consulta y hacer que sus resultados se envíen a una tabla de una base de datos SQL, como una base de datos SQL hospedada por el servicio Azure SQL Database.
Permisos
Debe tener al menos permisos de administrador de tablas para ejecutar este comando.
Sintaxis
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...]] )
<|
consulta
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Propiedades admitidas
Nombre | Valores | Descripción |
---|---|---|
firetriggers |
true o 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 o false |
Si true es , la tabla SQL de destino se crea si aún no existe; la primarykey propiedad debe proporcionarse en este caso para indicar la columna de resultado que es la clave principal. El valor predeterminado es false . |
primarykey |
Si createifnotexists es true , esta propiedad indica el nombre de la columna en el resultado que se usa como clave principal de la tabla SQL si este comando lo crea. |
|
persistDetails |
bool |
Indica que el comando debe conservar sus resultados (consulte async la marca ). El valor predeterminado es en ejecuciones asincrónicas true , pero se puede desactivar si el autor de la llamada no requiere los resultados. El valor predeterminado es false en ejecuciones sincrónicas, pero se puede activar. |
token |
string |
Token de acceso de Microsoft Entra que Kusto reenvía al punto de conexión de SQL para la autenticación. Cuando se establece, sql cadena de conexión no debe incluir información de autenticación como Authentication , User ID o Password . |
Autenticación y autorización
El método de autenticación se basa en el cadena de conexión proporcionado y los permisos necesarios para acceder a la base de datos SQL varían en función del método de autenticación.
Los métodos de autenticación admitidos para exportar datos a SQL son la autenticación integrada (suplantación) de Microsoft Entra y la autenticación de nombre de usuario y contraseña. Para la autenticación de suplantación, asegúrese de que la entidad de seguridad tiene los permisos siguientes en la base de datos:
- Tabla existente: tabla UPDATE e INSERT
- Nueva tabla: CREATE, UPDATE e INSERT
Nota:
Siempre que sea posible, el método preferido de autenticación es la autenticación integrada (suplantación) de Microsoft Entra.
Limitaciones y restricciones
Existen algunas limitaciones y restricciones al exportar datos a una base de datos SQL:
Kusto es un servicio en la nube, por lo que el cadena de conexión debe apuntar a una base de datos accesible desde la nube. (En concreto, no se puede exportar a una base de datos local, ya que no es accesible desde la nube pública).
Kusto admite la autenticación integrada de Active Directory cuando la entidad de seguridad de llamada es una entidad de seguridad de Microsoft Entra (
aaduser=
oaadapp=
). Como alternativa, Kusto también admite proporcionar las credenciales de la base de datos SQL como parte del cadena de conexión. No se admiten otros métodos de autenticación. La identidad que se presenta a la base de datos SQL siempre emana del llamador de comandos no de la propia identidad del servicio Kusto.Si la tabla de destino de la base de datos SQL existe, debe coincidir con el esquema de resultados de la consulta. En algunos casos, como Azure SQL Database, esto significa que la tabla tiene una columna marcada como una columna de identidad.
La exportación de grandes volúmenes de datos puede tardar mucho tiempo. Se recomienda establecer la tabla SQL de destino para el registro mínimo durante la importación masiva. Consulte SQL Server Motor de base de datos > ... > Características > de base de datos importación y exportación masiva de datos.
La exportación de datos se realiza mediante la copia masiva de SQL y no proporciona garantías transaccionales en la base de datos SQL de destino. Consulte Transacciones y operaciones de copia masiva.
El nombre de la tabla SQL está restringido a un nombre que consta de letras, dígitos, espacios, caracteres de subrayado (), puntos (
_
.
) y guiones (-
).El cadena de conexión de SQL está restringido de la siguiente manera:
Persist Security Info
se establecefalse
explícitamente en ,Encrypt
se establecetrue
en yTrust Server Certificate
se establece enfalse
.La propiedad de clave principal de la columna se puede especificar al crear una nueva tabla SQL. Si la columna es de tipo
string
, SQL podría rechazar la creación de la tabla debido a otras limitaciones en la columna de clave principal. La solución consiste en crear manualmente la tabla en SQL antes de exportar los datos. Esta limitación existe porque las columnas de clave principal de SQL no pueden tener un tamaño ilimitado, pero las columnas de tabla de Kusto no tienen limitaciones de tamaño declaradas.
Documentación de autenticación integrada de Microsoft Entra en base de datos de Azure
Ejemplos
Exportación asincrónica a la tabla SQL
En el ejemplo siguiente, Kusto ejecuta la consulta y, a continuación, exporta el primer conjunto de registros generado por la consulta a la tabla MySqlTable
de la base de datos MyDatabase
del 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 a la tabla SQL si no existe
En el ejemplo siguiente, Kusto ejecuta la consulta y, a continuación, exporta el primer conjunto de registros generado por la consulta a la tabla MySqlTable
de la base de datos MyDatabase
del servidor myserver
.
La tabla de destino se crea si no existe en la base de datos 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
Contenido relacionado
- ingesta desde de consulta
- Información general de los comandos de administración de
- Exportar a una tabla externa
- Exportar datos al almacenamiento en la nube
- Crear y modificar tablas externas de Azure SQL