Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: ✅Microsoft Fabric✅Azure Data Explorer
Perintah ini menjalankan kueri atau perintah manajemen dan menyerap hasil kueri ke dalam tabel. Perbedaan antara perintah ini adalah bagaimana mereka memperlakukan tabel dan data yang ada atau tidak ada.
Perintah | Jika tabel ada | Jika tabel tidak ada |
---|---|---|
.set |
Perintah gagal | Tabel dibuat dan data diserap |
.append |
Data ditambahkan ke tabel | Perintah gagal |
.set-or-append |
Data ditambahkan ke tabel | Tabel dibuat dan data diserap |
.set-or-replace |
Data menggantikan data dalam tabel | Tabel dibuat dan data diserap |
Untuk membatalkan penyerapan dari perintah kueri, lihat cancel operation
.
Catatan
Menyerap dari kueri adalah penyerapan langsung. Dengan demikian, ini tidak termasuk percobaan ulang otomatis. Percobaan ulang otomatis tersedia saat menyerap melalui layanan manajemen data. Gunakan dokumen gambaran umum penyerapan untuk memutuskan opsi penyerapan mana yang paling cocok untuk skenario Anda.
Izin
Untuk melakukan tindakan yang berbeda pada tabel, izin tertentu diperlukan:
- Untuk menambahkan baris ke tabel yang sudah ada menggunakan
.append
perintah , Anda memerlukan minimal izin Table Ingestor. - Untuk membuat tabel baru menggunakan berbagai
.set
perintah, Anda memerlukan minimal izin Pengguna Database. - Untuk mengganti baris dalam tabel yang sudah ada menggunakan
.set-or-replace
perintah , Anda memerlukan minimal izin Admin Tabel.
Untuk informasi selengkapnya tentang izin, lihat Kontrol akses berbasis peran Kusto.
Sintaks
(.set
.set-or-append
.set-or-replace
| | .append
| ) [async
] tableName [with
(
propertyName =
propertyValue [,
...]] <|
)
queryOrCommand
Pelajari selengkapnya tentang konvensi sintaksis.
Parameter
Nama | Tipe | Wajib | Deskripsi |
---|---|---|---|
async | string |
Jika ditentukan, perintah akan segera kembali dan melanjutkan penyerapan di latar belakang. Gunakan yang dikembalikan OperationId dengan .show operations perintah untuk mengambil status penyelesaian penyerapan dan hasil. |
|
tableName | string |
✔️ | Nama tabel untuk menyerap data. tableName selalu terkait dengan database dalam konteks. |
propertyName, propertyValue | string |
Satu atau beberapa properti penyerapan yang didukung digunakan untuk mengontrol proses penyerapan. | |
queryOrCommand | string |
✔️ | Teks kueri atau perintah manajemen yang hasilnya digunakan sebagai data untuk diserap. Hanya .show perintah manajemen yang didukung. |
Tips performa
- Atur
distributed
properti ketrue
jika jumlah data yang dihasilkan oleh kueri besar, melebihi 1 GB, dan tidak memerlukan serialisasi. Kemudian, beberapa simpul dapat menghasilkan output secara paralel. Jangan gunakan bendera ini saat hasil kueri kecil, karena mungkin tidak perlu menghasilkan banyak pecahan data kecil. - Penyerapan data adalah operasi intensif sumber daya yang mungkin memengaruhi aktivitas bersamaan pada database, termasuk menjalankan kueri. Hindari menjalankan terlalu banyak perintah penyerapan secara bersamaan.
- Batasi data untuk penyerapan hingga kurang dari 1 GB per operasi penyerapan. Jika perlu, gunakan beberapa perintah penyerapan.
Properti penyerapan yang didukung
Properti | Tipe | Deskripsi |
---|---|---|
distributed |
bool |
Jika true , perintah menyerap dari semua simpul yang menjalankan kueri secara paralel. Defaultnya adalah false . Lihat tips performa. |
creationTime |
string |
Nilai datetime, diformat sebagai string ISO8601, untuk digunakan pada saat pembuatan jangkauan data yang diserap. Jika tidak ditentukan, now() digunakan. Ketika ditentukan, pastikan properti Lookback dalam Kebijakan penggabungan jangkauan efektif milik tabel target selaras dengan nilai yang ditentukan. |
extend_schema |
bool |
Jika true , perintah dapat memperluas skema tabel. Defaultnya adalah false . Opsi hanya berlaku untuk perintah .append , .set-or-append , dan set-or-replace . Opsi ini memerlukan setidaknya izin Admin Tabel. |
recreate_schema |
bool |
Jika true , perintah dapat membuat ulang skema tabel. Defaultnya adalah false . Opsi ini hanya berlaku untuk .set-or-replace perintah . Opsi ini lebih diutamakan daripada extend_schema properti jika keduanya diatur. Opsi ini memerlukan setidaknya izin Admin Tabel. |
folder |
string |
Folder yang akan ditetapkan ke tabel. Jika tabel sudah ada, properti ini akan menimpa folder tabel. |
ingestIfNotExists |
string |
Jika ditentukan, penyerapan gagal jika tabel sudah memiliki data yang ingest-by: ditandai dengan tag dengan nilai yang sama. Untuk informasi selengkapnya, lihat ingest-by: tag. |
policy_ingestiontime |
bool |
Jika true , Kebijakan Waktu Penyerapan akan diaktifkan pada tabel. Default adalah true . |
tags |
string |
String JSON yang mewakili daftar tag untuk dikaitkan dengan tingkat yang dibuat. |
docstring |
string |
Deskripsi yang digunakan untuk mendokumen tabel. |
persistDetails |
Nilai Boolean yang, jika ditentukan, menunjukkan bahwa perintah harus mempertahankan hasil terperinci untuk pengambilan oleh perintah detail operasi .show. Default ke false . |
with (persistDetails=true) |
Pertimbangan skema
.set-or-replace
mempertahankan skema kecuali salah satu dariextend_schema
ataurecreate_schema
properti penyerapan diatur ketrue
..set-or-append
dan.append
perintah mempertahankan skema kecualiextend_schema
properti penyerapan diatur ketrue
.- Mencocokkan skema tataan hasil dengan tabel target didasarkan pada jenis kolom. Tidak ada pencocokan nama kolom. Pastikan bahwa kolom skema hasil kueri berada dalam urutan yang sama dengan tabel, data lain akan diserap ke dalam kolom yang salah.
Perhatian
Jika skema dimodifikasi, itu terjadi dalam transaksi terpisah sebelum penyerapan data aktual. Ini berarti skema dapat dimodifikasi bahkan ketika ada kegagalan untuk menyerap data.
Batasan karakter
Perintah gagal jika kueri menghasilkan nama entitas dengan $
karakter . Nama entitas harus mematuhi aturan penamaan, sehingga $
karakter harus dihapus agar perintah penyerapan berhasil.
Misalnya, dalam kueri berikut, search
operator menghasilkan kolom $table
. Untuk menyimpan hasil kueri, gunakan project-rename untuk mengganti nama kolom.
.set Texas <| search State has 'Texas' | project-rename tableName=$table
Contoh
Buat tabel baru bernama RecentErrors dalam database yang memiliki skema LogsTable yang sama dengan dan menyimpan semua rekaman kesalahan dari jam terakhir.
.set RecentErrors <|
LogsTable
| where Level == "Error" and Timestamp > now() - time(1h)
Buat tabel baru yang disebut "OldExtents" dalam database yang memiliki satu kolom, "ExtentId", dan menyimpan ID sejauh mana saja dalam database yang dibuat lebih dari 30 hari yang lalu. Database sudah memiliki tabel bernama "MyExtents". Karena himpunan data diperkirakan lebih besar dari 1 GB (lebih dari ~ 1 juta baris) gunakan bendera terdistribusi
.set async OldExtents with(distributed=true) <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Tambahkan data ke tabel bernama "OldExtents" yang sudah ada dalam database saat ini yang memiliki satu kolom, "ExtentId", dan menyimpan ID jangkauan dari semua jangkauan dalam database yang telah dibuat lebih dari 30 hari sebelumnya.
Tandai jangkauan baru dengan tag tagA
dan tagB
, berdasarkan tabel bernama "MyExtents" yang sudah ada.
.append OldExtents with(tags='["TagA","TagB"]') <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Tambahkan data ke tabel "OldExtents" dalam database saat ini, atau buat tabel jika belum ada. Beri tag jangkauan baru dengan ingest-by:myTag
. Lakukan ini hanya jika tabel belum berisi jangkauan yang diberi tag ingest-by:myTag
, berdasarkan tabel bernama "MyExtents" yang sudah ada.
.set-or-append async OldExtents with(tags='["ingest-by:myTag"]', ingestIfNotExists='["myTag"]') <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Ganti data dalam tabel "OldExtents" dalam database saat ini, atau buat tabel jika belum ada. Beri tag jangkauan baru dengan ingest-by:myTag
.
.set-or-replace async OldExtents with(tags='["ingest-by:myTag"]', ingestIfNotExists='["myTag"]') <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Tambahkan data ke tabel "OldExtents" di database saat ini, sambil mengatur batas waktu pembuatan ke tanggalwaktu tertentu di masa lalu.
.append async OldExtents with(creationTime='2017-02-13T11:09:36.7992775Z') <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Mengembalikan output
Menampilkan informasi tentang jangkauan yang dibuat karena perintah .set
atau .append
.
Contoh output
ExtentId | OriginalSize | ExtentSize | CompressedSize | IndexSize | RowCount |
---|---|---|---|---|---|
23a05ed6-376d-4119-b1fc-6493bcb05563 | 1291 | 5882 | 1568 | 4314 | 10 |