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
- SQL Server
- MySQL
- PostgreSQL
- 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
| ) external
table
TableName(
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",
)
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk