Mengelola dan menemukan data Azure Blob dengan tag indeks blob

Ketika himpunan data semakin besar, menemukan objek tertentu di lautan data bisa jadi menyulitkan. Tag indeks blob menyediakan manajemen data dan kemampuan penemuan dengan menggunakan atribut tag indeks nilai-kunci. Anda dapat mengategorikan dan menemukan objek dalam satu kontainer atau di semua kontainer di akun penyimpanan Anda. Saat persyaratan data berubah, objek dapat dikategorikan secara dinamis dengan memperbarui tag indeks mereka. Objek dapat tetap di tempat dengan organisasi kontainer terkini objek tersebut.

Tag indeks blob memungkinkan Anda:

  • Mengategorikan blob Anda secara dinamis menggunakan tag indeks nilai-kunci

  • Menemukan blob bertag tertentu dengan cepat di seluruh akun penyimpanan

  • Menentukan perilaku kondisional untuk API blob berdasarkan evaluasi tag indeks

  • Menggunakan tag indeks untuk kontrol tingkat lanjut pada fitur seperti manajemen siklus hidup blob

Pertimbangkan skenario saat Anda memiliki jutaan blob di akun penyimpanan yang diakses oleh berbagai aplikasi. Anda ingin menemukan semua data terkait dari satu proyek. Anda tidak yakin apa yang tercakup karena data dapat tersebar di beberapa kontainer dengan konvensi penamaan berbeda. Namun, aplikasi Anda mengunggah semua data dengan tag berdasarkan proyek aplikasi-aplikasi tersebut. Alih-alih mencari melalui jutaan blob dan membandingkan nama serta properti, Anda dapat menggunakan Project = Contoso sebagai kriteria penemuan Anda. Indeks blob akan memfilter semua kontainer di seluruh akun penyimpanan Anda untuk dengan cepat menemukan dan mengembalikan hanya kumpulan 50 blob dari Project = Contoso.

Untuk memulai dengan contoh tentang cara menggunakan indeks blob, lihat Gunakan tag indeks blob untuk mengelola dan menemukan data.

Tag indeks blob dan manajemen data

Prefiks nama kontainer dan blob merupakan kategorisasi satu dimensi. Tag indeks blob memungkinkan kategorisasi multi-dimensi untuk jenis data blob (Blok, Lampiran, atau Halaman). Kategorisasi multi-dimensi diindeks secara asli oleh Azure Blob Storage sehingga Anda dapat dengan cepat menemukan data.

Pertimbangkan lima blob berikut di akun penyimpanan Anda:

  • container1/transaction.csv

  • container2/campaign.docx

  • photos/bannerphoto.png

  • archives/completed/2019review.pdf

  • logs/2020/01/01/logfile.txt

Blob ini dipisahkan menggunakan prefiks nama container/virtual folder/blob. Anda dapat mengatur atribut tag indeks Project = Contoso pada lima blob ini untuk mengategorikannya bersama sambil mempertahankan organisasi prefiksnya saat ini. Menambahkan tag indeks menghilangkan kebutuhan untuk memindahkan data dengan mengekspos kemampuan filter dan temukan data menggunakan indeks.

Mengatur tag indeks blob

Tag indeks blob adalah atribut nilai-kunci yang dapat diterapkan ke objek baru atau yang sudah ada dalam akun penyimpanan Anda. Anda dapat menentukan tag indeks selama proses pengunggahan menggunakan operasi Taruh Blob, Taruh Daftar Blok, atau Salin Blob dan header x-ms-tags opsional. Jika Anda sudah memiliki blob di akun penyimpanan, panggil Atur Tag Blob yang meneruskan dokumen XML yang diformat dengan tag indeks di isi permintaan.

Penting

Mengatur tag indeks blob dapat dilakukan oleh Pemilik Data Blob Azure Storage dan oleh siapa saja dengan Tanda Tangan Akses Bersama yang memiliki izin untuk mengakses tag blob (izin SAS t).

Selain itu, pengguna RBAC dengan izin Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write dapat melakukan operasi ini.

Anda dapat menerapkan tag tunggal pada blob Anda untuk menjelaskan kapan data Anda selesai diproses.

"processedDate" = '2020-01-01'

Anda dapat menerapkan beberapa tag pada blob Anda agar lebih deskriptif terhadap data.

"Proyek" = 'Contoso' "Klasifikasi" = 'True' "Status" = 'Unprocessed' "Prioritas" = '01'

Untuk memodifikasi atribut tag indeks yang ada, ambil atribut tag yang ada, modifikasi atribut tag, dan ganti dengan operasi Atur Tag Blob. Untuk menghapus semua tag indeks dari blob, panggil operasi Set Blob Tags tanpa atribut tag yang ditentukan. Karena tag indeks blob adalah sub sumber daya konten data blob, Set Blob Tags tag indeks blob tidak memodifikasi konten yang mendasarinya dan tidak mengubah waktu modifikasi blob terakhir atau eTag. Anda dapat membuat atau memodifikasi {i>tag blob Tag blobtag

Batasan berikut berlaku untuk tag indeks blob:

  • Setiap blob dapat memiliki hingga 10 tag indeks blob

  • Kunci tag harus antara satu dan 128 karakter.

  • Nilai tag harus antara nol dan 256 karakter.

  • Kunci dan nilai tag peka huruf besar/kecil.

  • Kunci dan nilai tag hanya mendukung tipe data untai (karakter). Setiap angka, tanggal, waktu, atau karakter khusus disimpan sebagai string.

  • Jika penerapan versi diaktifkan, tag indeks diterapkan ke versi blob tertentu. Jika Anda mengatur tag indeks pada versi saat ini, dan versi baru dibuat, maka tag tidak akan dikaitkan dengan versi baru. Tag hanya akan dikaitkan dengan versi sebelumnya.

  • Kunci dan nilai tag harus mematuhi aturan penamaan berikut:

    • Karakter alfanumerik:

      • a sampai z (huruf kecil)

      • A sampai Z (huruf besar)

      • 0 sampai 9 (angka)

    • Karakter khusus yang valid: spasi, plus, minus, titik, titik dua, sama dengan, garis bawah, garis miring maju ( +-.:=_/)

Mendapatkan dan mencantumkan tag indeks blob

Tag indeks blob disimpan sebagai sub sumber daya bersama data blob dan dapat diambil secara independen dari konten data blob yang mendasarinya. Tag indeks blob untuk blob tunggal dapat diambil dengan operasi Dapatkan Tag Blob. Operasi Cantumkan Blobs dengan parameter include:tags juga akan menampilkan semua blob dalam kontainer bersamaan dengan tag indeks blob masing-masing kontainer tersebut.

Penting

Mendapatkan dan mencantumkan tag indeks blob dapat dilakukan oleh Pemilik Data Blob Azure Storage dan oleh siapa saja dengan Tanda Tangan Akses Bersama yang memiliki izin untuk mengakses tag blob (izin SAS t).

Selain itu, pengguna RBAC dengan izin Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read dapat melakukan operasi ini.

Untuk setiap blob dengan setidaknya satu tag indeks blob, x-ms-tag-count yang ditampilkan dalam operasi Cantumkan Blob, Dapatkan Blob, dan Dapatkan Properti Blob menunjukkan jumlah tag indeks pada blob.

Menemukan data menggunakan tag indeks blob

Mesin pengindeksan mengekspos atribut nilai kunci Anda ke dalam indeks multi-dimensi. Setelah mengatur tag indeks Anda, tag indeks tersebut ada di blob dan dapat segera diambil.

Mungkin perlu waktu sebelum indeks blob diperbarui. Ini berlaku untuk menambahkan tag dan mengedit tag yang sudah ada. Jumlah waktu yang diperlukan tergantung pada beban kerja. Misalnya, jika operasi Atur Tag Blob membutuhkan waktu 30 menit untuk diselesaikan dengan kecepatan 15000 hingga 20000 transaksi per detik, maka diperlukan waktu hingga 10 menit untuk mengindeks semua blob tersebut. Pada tingkat yang lebih rendah, penundaan pengindeksan bisa di bawah satu detik. Distribusi lalu lintas juga memengaruhi penundaan pengindeksan. Misalnya, jika aplikasi klien menetapkan tag pada blob dalam urutan berurutan di bawah kontainer yang sama, penundaannya bisa lebih tinggi daripada jika tag diterapkan ke blob yang tidak terletak bersamaan.

Setelah pembaruan indeks blob, Anda dapat menggunakan kemampuan kueri dan penemuan asli yang ditawarkan oleh Blob Storage.

Operasi Temukan Blob menurut Tag memungkinkan Anda mendapatkan sekumpulan blob yang difilter dengan tag indeks yang cocok dengan ekspresi kueri tertentu. Find Blobs by Tags mendukung pemfilteran di semua kontainer dalam akun penyimpanan atau Anda dapat mencakup pemfilteran hanya untuk satu kontainer. Karena semua kunci dan nilai tag indeks adalah untai (karakter), operator relasional menggunakan pengurutan leksikografis.

Penting

Menemukan data menggunakan tag indeks blob dapat dilakukan oleh Pemilik Data Blob Penyimpanan dan oleh siapa pun dengan Tanda Tangan Akses Bersama yang memiliki izin untuk menemukan blob menurut tag ( f izin SAS).

Selain itu, pengguna RBAC dengan izin Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action dapat melakukan operasi ini.

Kriteria berikut berlaku untuk pemfilteran indeks blob:

  • Kunci tag harus diapit dalam tanda kutip ganda (")

  • Nilai tag dan nama kontainer harus diapit dalam tanda kutip tunggal (')

  • Karakter @ hanya diperbolehkan untuk pemfilteran pada nama kontainer tertentu (misalnya, @container = 'ContainerName')

  • Filter diterapkan dengan pengurutan leksikografis pada untai (karakter)

  • Operasi rentang sisi sama pada kunci yang sama tidak valid (misalnya, "Rank" > '10' AND "Rank" >= '15')

  • Saat menggunakan REST untuk membuat ekspresi filter, karakter harus dikodekan URI

  • Kueri tag dioptimalkan untuk pencocokan kesetaraan menggunakan satu tag (mis. StoreID = "100"). Kueri rentang yang menggunakan tag tunggal yang melibatkan >, >=, <, <= juga efisien. Kueri apa pun yang menggunakan AND dengan lebih dari satu tag tidak akan seefisien itu. Misalnya, Biaya > "01" DAN Biaya <= "100" adalah efisien. Biaya > "01 DAN StoreID = "2" tidak seefisien itu.

Tabel di bawah ini menunjukkan semua operator yang valid untuk Find Blobs by Tags:

Operator Deskripsi Contoh
= Equal "Status" = 'In Progress'
> Lebih dari "Date" > '2018-06-18'
>= Lebih besar dari atau sama dengan "Priority" >= '5'
< Kurang dari "Age" < '32'
<= Kurang dari atau sama dengan "Priority" <= '5'
AND Logika And "Rank" >= '010' AND "Rank" < '100'
@container Dicakup ke kontainer tertentu @container = 'videofiles' AND "status" = 'done'

Catatan

Biasakan dengan pengurutan leksikografis saat mengatur dan mengkueri tag.

  • Angka diurutkan sebelum huruf. Angka diurutkan berdasarkan digit pertama.
  • Huruf besar diurutkan sebelum huruf kecil.
  • Simbol tidak termasuk standar. Beberapa simbol diurutkan sebelum nilai numerik. Simbol lain diurutkan sebelum atau sesudah huruf.

Operasi blob kondisional dengan tag indeks blob

Di REST versi 2019-10-10 dan yang lebih tinggi, sebagian besar API layanan blob sekarang mendukung header kondisional, x-ms-if-tags, sehingga operasi hanya akan berhasil jika kondisi indeks blob yang ditentukan terpenuhi. Jika kondisinya tidak terpenuhi, Anda akan mendapat error 412: The condition specified using HTTP conditional header(s) is not met.

Header x-ms-if-tags dapat digabungkan dengan header kondisional HTTP lainnya yang ada (If-Match, If-None-Match, dan sebagainya). Jika beberapa header kondisional disediakan dalam permintaan, semuanya harus dievaluasi true agar operasi berhasil. Semua header kondisional digabungkan dengan logika AND secara efektif.

Tabel di bawah ini menunjukkan operator yang valid untuk operasi kondisional:

Operator Deskripsi Contoh
= Equal "Status" = 'In Progress'
<> Tidak sama dengan "Status" <> 'Done'
> Lebih dari "Date" > '2018-06-18'
>= Lebih besar dari atau sama dengan "Priority" >= '5'
< Kurang dari "Age" < '32'
<= Kurang dari atau sama dengan "Priority" <= '5'
AND Logika And "Rank" >= '010' AND "Rank" < '100'
ATAU Logika or "Status" = 'Done' OR "Priority" >= '05'

Catatan

Ada dua operator tambahan, tidak sama dengan dan logika or, yang diperbolehkan di header kondisional x-ms-if-tags untuk operasi blob tetapi tidak ada dalam operasi Find Blobs by Tags.

Integrasi platform dengan tag indeks blob

Tag indeks blob tidak hanya membantu Anda mengategorikan, mengelola, dan mencari pada data blob, tetapi juga menyediakan integrasi dengan fitur Blob Storage lainnya, seperti manajemen siklus hidup.

Manajemen siklus hidup

Dengan menggunakan blobIndexMatch sebagai filter aturan dalam manajemen siklus hidup, Anda dapat memindahkan data ke tingkat yang lebih dingin atau menghapus data berdasarkan tag indeks yang diterapkan ke blob Anda. Anda bisa lebih terperinci dalam aturan dan hanya memindahkan atau menghapus blob jika cocok dengan kriteria tag yang ditentukan.

Anda dapat mengatur kecocokan indeks blob sebagai filter mandiri yang diatur dalam aturan siklus hidup untuk menerapkan tindakan pada data yang diberi tag. Atau Anda dapat menggabungkan prefiks dan indeks blob untuk mencocokkan himpunan data lebih spesifik. Menentukan beberapa filter dalam aturan siklus hidup menerapkan operasi logika AND. Tindakan hanya akan berlaku jika semua kriteria filter cocok.

Sampel aturan manajemen siklus hidup berikut berlaku untuk blob blok dalam kontainer yang bernama videofiles. Tingkat aturan blob untuk mengarsipkan penyimpanan hanya berlaku jika data cocok dengan kriteria tag indeks blob "Status" == 'Processed' AND "Source" == 'RAW'.

Blob index match rule example for Lifecycle management in Azure portal

Izin dan Otorisasi

Anda dapat mengotorisasi akses ke tag indeks blob menggunakan salah satu pendekatan berikut:

Tag indeks blob adalah sub sumber daya ke data blob. Pengguna dengan izin atau token SAS untuk baca atau tulis blob mungkin tidak memiliki akses ke tag indeks blob.

Kontrol Akses Berbasis Peran

Penelepon yang menggunakan identitas Microsoft Entra dapat diberikan izin berikut untuk beroperasi pada tag indeks blob.

Operasi tag indeks blob Tindakan Azure RBAC
Atur Tag Blob Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
Dapatkan Tag Blob Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read
Temukan Blob menurut Tag Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action

Izin tambahan, terpisah dari data blob yang mendasarinya, diperlukan untuk operasi tag indeks. Peran Pemilik Data Blob Storage diberikan izin untuk ketiga operasi tag indeks blob.

Izin SAS

Pemanggil yang menggunakan tanda tangan akses bersama (SAS) dapat diberikan cakupan izin untuk beroperasi pada tag indeks blob.

SAS Layanan untuk blob

Izin berikut dapat diberikan dalam SAS layanan untuk blob guna mengizinkan akses ke tag indeks blob. Blob membaca (r) dan menulis izin (w) saja tidak cukup untuk mengizinkan membaca atau menulis tag indeksnya.

Izin Simbol URI Operasi yang diizinkan
Tag indeks t Dapatkan dan atur tag indeks untuk blob

SAS Layanan untuk kontainer

Izin berikut dapat diberikan dalam SAS layanan untuk kontainer guna memungkinkan pemfilteran pada tag blob. Izin daftar gumpalan (i) tidak cukup untuk memungkinkan pemfilteran blob dengan tag indeks blob.

Izin Simbol URI Operasi yang diizinkan
Tag indeks f Temukan blob dengan tag indeks

Akun SAS

Izin berikut dapat diberikan dalam SAS akun untuk memungkinkan akses ke tag indeks blob dan pemfilteran pada tag blob.

Izin Simbol URI Operasi yang diizinkan
Tag indeks t Dapatkan dan atur tag indeks untuk blob
Tag indeks f Temukan blob dengan tag indeks

Blob membaca (r) dan menulis izin (w) saja tidak cukup untuk memungkinkan membaca atau menulis tag indeksnya, dan izin daftar (i) tidak cukup untuk memungkinkan pemfilteran blob dengan tag indeks blob.

Memilih antara metadata dan tag indeks blob

Baik tag indeks blob atau pun metadata menyediakan kemampuan untuk menyimpan properti nilai kunci yang ditentukan pengguna bersama sumber daya blob. Keduanya dapat diambil dan diatur secara langsung, tanpa menampilkan atau mengubah isi blob. Dimungkinkan untuk menggunakan metadata dan tag indeks.

Hanya tag indeks yang terindeks secara otomatis dan dibuat tercari oleh layanan Blob Storage asli. Metadata tidak terindeks atau dicari secara asli. Anda harus menggunakan layanan terpisah seperti Azure Search. Tag indeks blob memiliki izin tambahan untuk membaca, memfilter, dan menulis yang terpisah dari data blob yang mendasarinya. Metadata menggunakan izin yang sama dengan blob dan ditampilkan sebagai header HTTP oleh operasi Dapatkan Blob dan Dapatkan Properti Blob. Tag indeks blob dienkripsi saat tidak digunakan menggunakan kunci terkelola Microsoft. Metadata dienkripsi saat tidak digunakan menggunakan kunci enkripsi yang sama yang ditentukan untuk data blob.

Tabel berikut ini meringkas perbedaan antara tag indeks metadata dan blob:

Metadata Tag indeks blob
Batas Tidak ada batas numerik, total 8 KB, tidak peka huruf besar/kecil Maks 10 tag per blob, 768 byte per tag, peka huruf besar/kecil
Pembaruan Tidak diizinkan pada tingkat arsip, Set Blob Metadata menggantikan semua metadata yang ada, Set Blob Metadata mengubah waktu terakhir-blob yang dimodifikasi Diizinkan untuk semua tingkat penyimpanan, Set Blob Tags menggantikan semua tag yang ada, Set Blob Tags tidak mengubah waktu terakhir-blob yang dimodifikasi
Penyimpanan Disimpan dengan data blob Sub sumber daya data blob
Pengindeksan & Kueri Harus menggunakan layanan terpisah seperti Azure Search Kemampuan pengindeksan dan kueri bawaan Blob Storage
Enkripsi Dienkripsi saat tidak digunakan dengan kunci enkripsi yang sama yang digunakan untuk data blob Dienkripsi saat tidak digunakan dengan kunci enkripsi yang dikelola Microsoft
Harga Ukuran metadata disertakan dalam biaya penyimpanan blob Biaya tetap per tag indeks
Respons header Metadata ditampilkan sebagai header di Get Blob dan Get Blob Properties Jumlah tag yang ditampilkan Get Blob atau Get Blob Properties, tag hanya ditampilkan oleh Get Blob Tags dan List Blobs
Izin Izin baca atau tulis ke data blob meluas ke metadata Izin tambahan diperlukan untuk membaca, memfilter, atau menulis tag indeks
Penamaan Nama metadata harus mematuhi aturan penamaan untuk pengidentifikasi C# Tag indeks blob mendukung berbagai karakter alfanumerik yang lebih luas

Harga

Anda ditagih untuk jumlah rata-rata bulanan tag indeks dalam akun penyimpanan. Tidak ada biaya untuk mesin pengindeksan. Permintaan untuk Mengatur Tag Blob, Mendapatkan Tag Blob, dan Menemukan Tag Blob dibebankan pada tingkat transaksi masing-masing saat ini. Perhatikan bahwa jumlah transaksi daftar yang digunakan saat melakukan transaksi Temukan Blob menurut Tag sama dengan jumlah klausul dalam permintaan. Misalnya, kueri (StoreID = 100) adalah satu transaksi daftar. Kueri (StoreID = 100 DAN SKU = 10010) adalah dua transaksi daftar. Lihat Harga Blob Blok untuk mempelajari selengkapnya.

Dukungan fitur

Dukungan untuk fitur ini mungkin terpengaruh dengan mengaktifkan Data Lake Storage Gen2, protokol Network File System (NFS) 3.0, atau SSH File Transfer Protocol (SFTP). Jika Anda telah mengaktifkan salah satu kemampuan ini, lihat Dukungan fitur Blob Storage di akun Azure Storage untuk menilai dukungan untuk fitur ini.

Kondisi dan masalah yang diketahui

Bagian ini menjelaskan masalah dan kondisi yang diketahui.

  • Hanya akun v2 tujuan umum dan akun blob blok premium yang didukung. Blob halaman premium, blob warisan, dan akun dengan namespace hierarkis yang diaktifkan tidak didukung. Akun v1 tujuan umum tidak akan didukung.

  • Mengunggah blob halaman dengan tag indeks tidak menahan tag. Atur tag setelah mengunggah blob halaman.

  • Jika Penerapan Versi {i>blob tag tag tag tag blob

  • Tidak ada API untuk menentukan apakah tag indeks diindeks.

  • Manajemen siklus hidup hanya mendukung pemeriksaan kesetaraan dengan kecocokan indeks blob.

  • Copy Blob tidak menyalin tag indeks blob dari blob sumber ke blob tujuan baru. Anda dapat menentukan tag yang ingin Anda terapkan ke blob tujuan selama operasi salin.

Pertanyaan yang sering diajukan (FAQ)

Lihat Tanya Jawab Umum tag indeks blob.

Langkah berikutnya

Untuk contoh cara menggunakan indeks blob, lihat Menggunakan indeks blob untuk mengelola dan menemukan data.

Pelajari tentang manajemen siklus hidup dan tetapkan aturan dengan pencocokan indeks blob.