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.
Beralih layanan menggunakan daftar drop-down Versi . Pelajari selengkapnya tentang navigasi.
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.
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.
Izin
Untuk melakukan tindakan yang berbeda pada tabel, Anda memerlukan izin tertentu:
- Untuk menambahkan baris ke tabel yang sudah ada menggunakan
.appendperintah , Anda memerlukan minimal izin Table Ingestor. - Untuk membuat tabel baru menggunakan berbagai
.setperintah, Anda memerlukan minimal izin Pengguna Database. - Untuk mengganti baris dalam tabel yang sudah ada menggunakan
.set-or-replaceperintah , Anda memerlukan minimal izin Admin Tabel.
Untuk informasi selengkapnya tentang izin, lihat Kontrol akses berbasis peran Kusto.
Sintaks
(.set | .append | .set-or-append | .set-or-replace) [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
distributedproperti ketruejika jumlah data yang dihasilkan oleh kueri besar, melebihi satu gigabyte (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 satu 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 ISO8601 string, untuk digunakan pada waktu pembuatan tingkat 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 mungkin 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 mungkin 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 diaktifkan pada tabel. Default adalah true. |
tags |
string |
JSON string 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-replacemempertahankan skema kecuali salah satu dariextend_schemaataurecreate_schemaproperti penyerapan diatur ketrue. -
.set-or-appenddan.appendperintah mempertahankan skema kecualiextend_schemaproperti 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, jika tidak, data diserap ke dalam kolom yang salah.
Perhatian
Jika skema dimodifikasi, itu terjadi dalam transaksi terpisah sebelum penyerapan data aktual. Ini berarti skema mungkin 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
Pengembalian Barang
Menampilkan informasi tentang jangkauan yang dibuat karena perintah .set atau .append.
Contoh
Membuat dan memperbarui tabel dari sumber kueri
Kueri berikut membuat RecentErrors tabel dengan skema LogsTableyang sama dengan . Ini diperbarui RecentErrors dengan semua log kesalahan dari LogsTable selama satu jam terakhir.
.set RecentErrors <|
LogsTable
| where Level == "Error" and Timestamp > now() - time(1h)
Membuat dan memperbarui tabel dari sumber kueri menggunakan bendera terdistribusi
Contoh berikut membuat tabel baru yang disebut OldExtents dalam database, secara asinkron. Himpunan data diperkirakan lebih besar dari satu GB (lebih dari ~satu juta baris) sehingga bendera terdistribusi digunakan. Ini diperbarui OldExtents dengan ExtentId entri dari MyExtents tabel yang dibuat lebih dari 30 hari yang lalu.
.set async OldExtents with(distributed=true) <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Menambahkan data ke tabel
Contoh berikut memfilter ExtentId entri dalam MyExtents tabel yang dibuat lebih dari 30 hari yang lalu dan menambahkan entri ke OldExtents tabel dengan tag terkait.
.append OldExtents with(tags='["TagA","TagB"]') <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Membuat atau menambahkan tabel dengan data bertag yang mungkin sudah ada
Contoh berikut menambahkan atau membuat OldExtents tabel secara asinkron. Ini memfilter ExtentId entri dalam MyExtents tabel yang dibuat lebih dari 30 hari yang lalu dan menentukan tag untuk ditambahkan ke tingkat baru dengan ingest-by:myTag. Parameter ingestIfNotExists memastikan bahwa penyerapan hanya terjadi jika data belum ada dalam tabel dengan tag yang ditentukan.
.set-or-append async OldExtents with(tags='["ingest-by:myTag"]', ingestIfNotExists='["myTag"]') <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Membuat tabel atau mengganti data dengan data terkait
Kueri berikut menggantikan data dalam OldExtents tabel, atau membuat tabel jika belum ada, dengan ExtentId entri dalam MyExtents tabel yang dibuat lebih dari 30 hari yang lalu. Beri tag tingkat baru dengan ingest-by:myTag jika data belum ada dalam tabel dengan tag yang ditentukan.
.set-or-replace async OldExtents with(tags='["ingest-by:myTag"]', ingestIfNotExists='["myTag"]') <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Menambahkan data dengan data terkait
Contoh berikut menambahkan data ke OldExtents tabel secara asinkron, menggunakan ExtentId entri dari MyExtents tabel yang dibuat lebih dari 30 hari yang lalu. Ini mengatur waktu pembuatan tertentu untuk tingkat baru.
.append async OldExtents with(creationTime='2017-02-13T11:09:36.7992775Z') <|
MyExtents
| where CreatedOn < now() - time(30d)
| project ExtentId
Output contoh
Berikut ini adalah sampel jenis output yang mungkin Anda lihat dari kueri Anda.
| ExtentId | OriginalSize | ExtentSize | CompressedSize | IndexSize | RowCount |
|---|---|---|---|---|---|
| 23a05ed6-376d-4119-b1fc-6493bcb05563 | 1291 | 5882 | 1568 | 4314 | 10 |
Konten terkait
- Format data yang didukung untuk pengambilan
- Penyerapan sebaris
- Menyerap dari penyimpanan