.export to SQL (Eksportowanie do bazy danych SQL)
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer
Eksportowanie danych do bazy danych SQL umożliwia uruchomienie zapytania i wysłanie wyników do tabeli w bazie danych SQL, takiej jak baza danych SQL hostowana przez usługę Azure SQL Database.
Uprawnienia
Aby uruchomić to polecenie, musisz mieć co najmniej uprawnienia administratora tabeli.
Składnia
.export
[async
] to
sql
sqlTableNamesqlConnectionString [with
(
propertyName=
propertyValue [,
...]] )
<|
zapytanie
Dowiedz się więcej na temat konwencji składni.
Parametry
Nazwisko | Type | Wymagania | opis |
---|---|---|---|
async |
string |
Jeśli zostanie określony, polecenie jest uruchamiane asynchronicznie. | |
SqlTableName | string |
✔️ | Nazwa tabeli bazy danych SQL, do której mają być wstawione dane. Aby chronić przed atakami polegającymi na wstrzyknięciu, ta nazwa jest ograniczona. |
SqlConnectionString | string |
✔️ | Parametry połączenia dla punktu końcowego i bazy danych SQL. Ciąg musi być zgodny z formatem ADO.NET parametry połączenia. Ze względów bezpieczeństwa parametry połączenia jest ograniczona. |
PropertyName, PropertyValue | string |
Lista opcjonalnych właściwości. |
Obsługiwane właściwości
Nazwisko | Wartości | opis |
---|---|---|
firetriggers |
true lub false |
Jeśli true program , nakazuje systemowi docelowemu uruchamianie wyzwalaczy INSERT zdefiniowanych w tabeli SQL. Wartość domyślna to false . Aby uzyskać więcej informacji, zobacz BULK INSERT i System.Data.SqlClient.SqlBulkCopy. |
createifnotexists |
true lub false |
Jeśli true docelowa tabela SQL zostanie utworzona, jeśli jeszcze nie istnieje. primarykey Właściwość musi być podana w tym przypadku, aby wskazać kolumnę wynikową, która jest kluczem podstawowym. Wartość domyślna to false . |
primarykey |
Jeśli createifnotexists jest true , ta właściwość wskazuje nazwę kolumny w wyniku, który jest używany jako klucz podstawowy tabeli SQL, jeśli został utworzony przez to polecenie. |
|
persistDetails |
bool |
Wskazuje, że polecenie powinno utrwalić wyniki (zobacz async flagę). Wartość domyślna to true w uruchomieniach asynchronicznych, ale można je wyłączyć, jeśli obiekt wywołujący nie wymaga wyników. Wartość domyślna to false w wykonaniach synchronicznych, ale można je włączyć. |
token |
string |
Token dostępu firmy Microsoft Entra przekazywany przez usługę Kusto do punktu końcowego SQL na potrzeby uwierzytelniania. Po ustawieniu parametry połączenia SQL nie powinny zawierać informacji uwierzytelniania, takich jak Authentication , User ID lub Password . |
Uwierzytelnianie i autoryzacja
Metoda uwierzytelniania jest oparta na podanych parametry połączenia, a uprawnienia wymagane do uzyskania dostępu do bazy danych SQL różnią się w zależności od metody uwierzytelniania.
Obsługiwane metody uwierzytelniania do eksportowania danych do bazy danych SQL to uwierzytelnianie zintegrowane (personifikacja) firmy Microsoft i uwierzytelnianie nazwy użytkownika/hasła. W przypadku uwierzytelniania personifikacji upewnij się, że podmiot zabezpieczeń ma następujące uprawnienia do bazy danych:
- Istniejąca tabela: tabela UPDATE i INSERT
- Nowa tabela: CREATE, UPDATE i INSERT
Uwaga
Jeśli to możliwe, preferowaną metodą uwierzytelniania jest uwierzytelnianie zintegrowane (personifikacja) firmy Microsoft.
Limity i ograniczenia
Podczas eksportowania danych do bazy danych SQL istnieją pewne ograniczenia i ograniczenia:
Kusto to usługa w chmurze, więc parametry połączenia musi wskazywać bazę danych dostępną z chmury. (W szczególności nie można wyeksportować ich do lokalnej bazy danych, ponieważ nie jest dostępna z chmury publicznej).
Usługa Kusto obsługuje zintegrowane uwierzytelnianie usługi Active Directory, gdy podmiot zabezpieczeń wywołujących jest podmiotem zabezpieczeń firmy Microsoft (
aaduser=
lubaadapp=
). Alternatywnie usługa Kusto obsługuje również podawanie poświadczeń dla bazy danych SQL w ramach parametry połączenia. Inne metody uwierzytelniania nie są obsługiwane. Tożsamość wyświetlana w bazie danych SQL zawsze emanuje z obiektu wywołującego polecenie, a nie samej tożsamości usługi Kusto.Jeśli tabela docelowa w bazie danych SQL istnieje, musi być zgodna ze schematem wyników zapytania. W niektórych przypadkach, takich jak usługa Azure SQL Database, oznacza to, że tabela ma jedną kolumnę oznaczoną jako kolumnę tożsamości.
Eksportowanie dużych ilości danych może zająć dużo czasu. Zaleca się, aby docelowa tabela SQL była ustawiana na potrzeby minimalnego rejestrowania podczas importowania zbiorczego. Zobacz Aparat > bazy danych programu SQL Server... > Funkcje > bazy danych zbiorczego importowania i eksportowania danych.
Eksportowanie danych odbywa się przy użyciu kopiowania zbiorczego SQL i nie zapewnia żadnych gwarancji transakcyjnych w docelowej bazie danych SQL. Zobacz Operacje transakcji i kopiowania zbiorczego.
Nazwa tabeli SQL jest ograniczona do nazwy składającej się z liter, cyfr, spacji, podkreśleń (), kropek (
_
.
) i łączników (-
).Parametry połączenia SQL jest ograniczony w następujący sposób:
Persist Security Info
jest jawnie ustawiona nafalse
,Encrypt
jest ustawiona natrue
, iTrust Server Certificate
jest ustawiona nafalse
wartość .Właściwość klucza podstawowego w kolumnie można określić podczas tworzenia nowej tabeli SQL. Jeśli kolumna ma typ
string
, usługa SQL może odmówić utworzenia tabeli ze względu na inne ograniczenia w kolumnie klucza podstawowego. Obejście polega na ręcznym utworzeniu tabeli w języku SQL przed wyeksportowaniem danych. To ograniczenie istnieje, ponieważ kolumny klucza podstawowego w języku SQL nie mogą mieć nieograniczonego rozmiaru, ale kolumny tabeli Kusto nie mają zadeklarowanych ograniczeń rozmiaru.
Dokumentacja zintegrowanego uwierzytelniania usługi Microsoft Entra w bazie danych platformy Azure
Przykłady
Eksportowanie asynchroniczne do tabeli SQL
W poniższym przykładzie usługa Kusto uruchamia zapytanie, a następnie eksportuje pierwszy zestaw rekordów utworzony przez zapytanie do tabeli MySqlTable
w bazie danych MyDatabase
na serwerze 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)
Eksportowanie do tabeli SQL, jeśli nie istnieje
W poniższym przykładzie usługa Kusto uruchamia zapytanie, a następnie eksportuje pierwszy zestaw rekordów utworzony przez zapytanie do tabeli MySqlTable
w bazie danych MyDatabase
na serwerze myserver
.
Tabela docelowa jest tworzona, jeśli nie istnieje w docelowej bazie danych.
.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