Экспорт в SQL
Область применения: ✅Microsoft Fabric✅Azure Data Explorer
Экспорт данных в SQL позволяет выполнять запрос и отправлять результаты в таблицу в базе данных SQL, например базу данных SQL, размещенную службой База данных SQL Azure.
Разрешения
Для выполнения этой команды необходимо иметь по крайней мере разрешения администратора таблицы.
Синтаксис
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...]] )
<|
запрос
Дополнительные сведения о соглашениях синтаксиса.
Параметры
Имя (название) | Type | Обязательно | Описание |
---|---|---|---|
async |
string |
Если задано, команда выполняется асинхронно. | |
SqlTableName | string |
✔️ | Имя таблицы базы данных SQL, в которую необходимо вставить данные. Чтобы защитить от атак на внедрение, это имя ограничено. |
SqlConnectionString | string |
✔️ | Строка подключения для конечной точки и базы данных SQL. Строка должна соответствовать формату ADO.NET строка подключения. По соображениям безопасности строка подключения ограничен. |
PropertyName, PropertyValue | string |
Список необязательных свойств. |
Поддерживаемые свойства
Имя (название) | Значения | Описание |
---|---|---|
firetriggers |
true или false |
Если true , указывает целевой системе запускать триггеры INSERT, определенные в таблице SQL. Значение по умолчанию — false . Дополнительные сведения см. в статье BULK INSERT и System.Data.SqlClient.SqlBulkCopy. |
createifnotexists |
true или false |
Если true целевая таблица SQL создается, если она еще не существует; primarykey свойство должно быть предоставлено в этом случае, чтобы указать столбец результатов, который является первичным ключом. Значение по умолчанию — false . |
primarykey |
Если createifnotexists true , это свойство указывает имя столбца в результате, который используется в качестве первичного ключа таблицы SQL, если он создан этой командой. |
|
persistDetails |
bool |
Указывает, что команда должна сохранять результаты (см async . флаг). По умолчанию выполняется true асинхронный запуск, но его можно отключить, если вызывающий объект не требует результатов. По умолчанию используется false синхронное выполнение, но его можно включить. |
token |
string |
Маркер доступа Microsoft Entra, который Kusto перенаправит в конечную точку SQL для проверки подлинности. При установке строка подключения SQL не следует включать такие сведения проверки подлинности, как Authentication , User ID или Password . |
Проверка подлинности и авторизация
Метод проверки подлинности основан на предоставленном строка подключения, а разрешения, необходимые для доступа к базе данных SQL, зависят от метода проверки подлинности.
Поддерживаемые методы проверки подлинности для экспорта данных в SQL — это встроенная проверка подлинности (олицетворение) Microsoft Entra и проверка подлинности имени пользователя и пароля. Для проверки подлинности олицетворения убедитесь, что субъект имеет следующие разрешения в базе данных:
- Существующая таблица: table UPDATE и INSERT
- Новая таблица: CREATE, UPDATE и INSERT
Примечание.
По возможности предпочтительный метод проверки подлинности — это встроенная (олицетворение) проверка подлинности Microsoft Entra.
ограничения
При экспорте данных в базу данных SQL существуют некоторые ограничения и ограничения.
Kusto — это облачная служба, поэтому строка подключения должен указывать на базу данных, доступную из облака. (В частности, нельзя экспортировать в локальную базу данных, так как она недоступна из общедоступного облака.)
Kusto поддерживает встроенную проверку подлинности Active Directory, если вызывающий субъект является субъектом Microsoft Entra (
aaduser=
илиaadapp=
). Кроме того, Kusto также поддерживает предоставление учетных данных для базы данных SQL в рамках строка подключения. Другие методы проверки подлинности не поддерживаются. Удостоверение, представленное базе данных SQL, всегда исходит от вызывающего команды, а не самого удостоверения службы Kusto.Если целевая таблица в базе данных SQL существует, она должна соответствовать схеме результатов запроса. В некоторых случаях, например База данных SQL Azure, это означает, что в таблице есть один столбец, помеченный как столбец удостоверения.
Экспорт больших объемов данных может занять много времени. Рекомендуется установить целевую таблицу SQL для минимального ведения журнала во время массового импорта. См. ядро СУБД > SQL Server ... > Функции > базы данных массового импорта и экспорта данных.
Экспорт данных выполняется с помощью массового копирования SQL и не предоставляет никаких гарантий транзакций в целевой базе данных SQL. См . операции транзакций и массового копирования.
Имя таблицы SQL ограничено именем, состоящим из букв, цифр, пробелов, символов подчеркивания (
_
), точек (.
) и дефисов (-
).Sql строка подключения ограничен следующим образом:
Persist Security Info
false
явно задано значение ,Encrypt
имеетtrue
значение иTrust Server Certificate
имеетfalse
значение ..Свойство первичного ключа в столбце можно указать при создании новой таблицы SQL. Если столбец имеет тип
string
, SQL может отказаться создать таблицу из-за других ограничений в столбце первичного ключа. Обходной путь — вручную создать таблицу в SQL перед экспортом данных. Это ограничение существует, так как столбцы первичного ключа в SQL не могут иметь неограниченного размера, но столбцы таблицы Kusto не имеют объявленных ограничений размера.
Документация по интегрированной проверке подлинности в базе данных Azure Microsoft Entra
Примеры
Асинхронный экспорт в таблицу SQL
В следующем примере Kusto запускает запрос, а затем экспортирует первый набор записей, созданный запросом, в таблицу MySqlTable
в базе данных MyDatabase
на сервере 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)
Экспорт в таблицу SQL, если она не существует
В следующем примере Kusto запускает запрос, а затем экспортирует первый набор записей, созданный запросом, в таблицу MySqlTable
в базе данных MyDatabase
на сервере myserver
.
Целевая таблица создается, если она не существует в целевой базе данных.
.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
Связанное содержимое
- прием из запроса
- Общие сведения о командах управления
- .export to table
- .export to storage
- Создание и изменение внешних таблиц SQL Azure