Compartir a través de


Exportación de datos a SQL

Se aplica a: ✅Microsoft FabricAzure 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] tosqlsqlTableNamesqlConnectionString [with(propertyName= propertyValue [, ...]] )<|consulta

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Type Obligatorio Descripción
async string Si se especifica, el comando se ejecuta de forma asincrónica.
SqlTableName string ✔️ Nombre de la tabla de base de datos SQL en la que se van a insertar los datos. Para protegerse contra ataques por inyección, este nombre está restringido.
SqlConnectionString string ✔️ El cadena de conexión para el punto de conexión y la base de datos de SQL. La cadena debe seguir el ADO.NET formato cadena de conexión. Por motivos de seguridad, el cadena de conexión está restringido.
PropertyName, PropertyValue string Lista de propiedades opcionales.

Propiedades admitidas

Nombre Valores Descripción
firetriggers true o false Si truees , 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 truees , 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 IDo 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:

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

  2. 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= o aadapp=). 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.

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

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

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

  6. El nombre de la tabla SQL está restringido a un nombre que consta de letras, dígitos, espacios, caracteres de subrayado (), puntos (_.) y guiones (-).

  7. El cadena de conexión de SQL está restringido de la siguiente manera: Persist Security Info se establece falseexplícitamente en , Encrypt se establece trueen y Trust Server Certificate se establece en false.

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