Membuat dan mengubah tabel eksternal Azure SQL

Membuat atau mengubah tabel eksternal Azure SQL dalam database tempat perintah dijalankan.

Catatan

  • Jika tabel ada, perintah .create akan gagal dengan kesalahan. Gunakan .create-or-alter atau .alter mengubah tabel yang ada.
  • Mengubah skema tabel Azure SQL eksternal tidak didukung.

Jenis tabel eksternal Azure SQL yang didukung

  1. SQL Server
  2. MySQL
  3. PostgreSQL
  4. Cosmos DB

Izin

Untuk .create memerlukan setidaknya izin Pengguna Database dan untuk .alter memerlukan setidaknya izin Admin Tabel.

Ke .create-or-alter tabel eksternal menggunakan autentikasi identitas terkelola memerlukan izin AllDatabasesAdmin . Saat ini, ini hanya relevan untuk tabel eksternal SQL Server.

Sintaks

(.create | .alter.create-or-alter | ) externaltableTableName(Schemasql=)kind [ table=SqlTableName ] (Sql Koneksi ionString) [(with [ sqlDialect=SqlDialect ] , [ Property, ... ]])

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
TableName string ✔️ Nama tabel eksternal Nama harus mengikuti aturan untuk nama entitas, dan tabel eksternal tidak boleh memiliki nama yang sama dengan tabel biasa dalam database yang sama.
Skema string ✔️ Skema data eksternal adalah daftar satu atau beberapa nama kolom dan jenis data yang dipisahkan koma, di mana setiap item mengikuti format: ColumnName:ColumnType.
SqlTableName string Nama tabel SQL tidak menyertakan nama database. Misalnya, "MySqlTable" dan bukan "db1. MySqlTable". Jika nama tabel berisi notasi titik ("."), gunakan notasi ['Name.of.the.table'].


Spesifikasi ini diperlukan untuk semua jenis tabel kecuali untuk Cosmos DB, karena untuk Cosmos DB, nama koleksi adalah bagian dari string koneksi.
Sql Koneksi ionString string ✔️ string koneksi ke server SQL.
SqlDialect string Menunjukkan jenis tabel eksternal Azure SQL. SQL Server adalah default. Untuk MySQL, tentukan MySQL. Untuk PostgreSQL, tentukan PostgreSQL. Untuk Cosmos DB, tentukan CosmosDbSql.
Properti string Pasangan properti kunci-nilai dalam format PropertyName=PropertyValue. Lihat properti opsional.

Peringatan

String koneksi dan kueri yang menyertakan informasi rahasia harus disamarkan sehingga informasi tersebut akan dihilangkan dari pelacakan Kusto apa pun. Untuk informasi selengkapnya, lihat harfiah string yang disamarkan.

Properti opsional

Properti Tipe Deskripsi
folder string Folder tabel.
docString string String yang mendokumentasikan tabel.
firetriggers true/false Jika true, memerintahkan sistem target untuk mengaktifkan pemicu INSERT yang ditentukan pada tabel SQL. Default adalah false. (Untuk informasi selengkapnya, lihat BULK INSERT dan System.Data.SqlClient.SqlBulkCopy)
createifnotexists true/ false Jika true, tabel SQL target dibuat jika belum ada; primarykey properti harus disediakan dalam kasus ini untuk menunjukkan kolom hasil yang merupakan kunci utama. Default adalah false.
primarykey string Jika createifnotexists adalah true, nama kolom yang dihasilkan digunakan sebagai kunci utama tabel SQL jika dibuat oleh perintah ini.

Autentikasi dan otorisasi

Untuk berinteraksi dengan tabel Azure SQL eksternal dari Azure Data Explorer, Anda harus menentukan sarana autentikasi sebagai bagian dari Sql Koneksi ionString. Sql Koneksi ionString mendefinisikan sumber daya untuk diakses dan informasi autentikasinya.

Untuk informasi selengkapnya, lihat Metode autentikasi tabel eksternal Azure SQL.

Catatan

Jika tabel eksternal digunakan untuk ekspor berkelanjutan, autentikasi harus dilakukan baik dengan nama pengguna/kata sandi atau identitas terkelola.

Contoh

Contoh berikut menunjukkan cara membuat setiap jenis tabel eksternal Azure 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
)  

Hasil

TableName TableType Folder DocString Properti
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", 
)