Memilih penyimpanan data analitis di Azure

Dalam arsitektur big data, sering ada kebutuhan untuk penyimpanan data analitis yang melayani data olahan dalam format terstruktur yang dapat ditanyakan menggunakan alat analisis. Penyimpanan data analitis yang mendukung kueri data jalur panas dan jalur dingin secara kolektif disebut sebagai lapisan penyajian, atau penyimpanan penyajian data.

Lapisan penyajian berkaitan dengan data olahan dari jalur panas dan jalur dingin. Dalam arsitektur lambda, lapisan penyajian dibagi menjadi lapisan penyajian kecepatan, yang menyimpan data yang telah diproses secara bertahap, dan lapisan penyajian batch, yang berisi output yang diproses batch. Lapisan penyajian membutuhkan dukungan yang kuat untuk pembacaan acak dengan latensi rendah. Penyimpanan data untuk lapisan kecepatan juga harus mendukung penulisan acak, karena data pemuatan batch ke penyimpanan ini akan memperkenalkan penundaan yang tidak diinginkan. Di sisi lain, penyimpanan data untuk lapisan batch tidak perlu mendukung penulisan acak, tetapi penulisan batch sebagai gantinya.

Tidak ada satu pun pilihan manajemen data terbaik untuk semua tugas penyimpanan data. Solusi manajemen data yang berbeda dioptimalkan untuk tugas yang berbeda. Sebagian besar aplikasi cloud dunia nyata dan proses big data memiliki berbagai persyaratan penyimpanan data dan sering menggunakan kombinasi solusi penyimpanan data.

Apa pilihan Anda saat memilih penyimpanan data analitis?

Ada beberapa opsi untuk penyimpanan penyajian data di Azure, tergantung kebutuhan Anda:

Opsi ini menyediakan berbagai model database yang dioptimalkan untuk berbagai jenis tugas:

  • Database kunci/nilai menyimpan satu objek serial untuk setiap nilai kunci. Database ini baik untuk menyimpan volume data yang besar yang mana Anda ingin mendapatkan satu item untuk nilai kunci tertentu dan Anda tidak perlu meminta berdasarkan properti lain dari item.
  • Database dokumen adalah database kunci/nilai dengan nilai adalah dokumen. "Dokumen" dalam konteks ini adalah kumpulan bidang dan nilai bernama. Database biasanya menyimpan data dalam format seperti XML, YAML, JSON, atau BSON, tetapi dapat menggunakan teks biasa. Database dokumen dapat melakukan kueri pada bidang non-kunci dan menentukan indeks sekunder untuk membuat kueri lebih efisien. Hal ini membuat database dokumen lebih cocok untuk aplikasi yang perlu mengambil data berdasarkan kriteria yang lebih kompleks daripada nilai kunci dokumen. Misalnya, Anda dapat melakukan kueri di bidang seperti ID produk, ID pelanggan, atau nama pelanggan.
  • Database penyimpanan kolom adalah penyimpanan data kunci/nilai yang menyimpan setiap kolom secara terpisah di disk. Database penyimpanan kolom yang luas adalah jenis database penyimpanan kolom yang menyimpan keluarga kolom, bukan hanya kolom tunggal. Misalnya, database sensus mungkin memiliki keluarga kolom untuk nama seseorang (pertama, tengah, terakhir), keluarga untuk alamat orang tersebut, dan keluarga untuk informasi profil orang tersebut (tanggal lahir, jenis kelamin). Database dapat menyimpan setiap keluarga kolom dalam partisi terpisah, sambil menyimpan semua data untuk satu orang yang terkait dengan kunci yang sama. Aplikasi dapat membaca satu kelompok kolom tanpa membaca semua data untuk suatu entitas.
  • Database grafik menyimpan informasi sebagai kumpulan objek dan hubungan. Database grafik dapat secara efisien melakukan kueri yang melintasi jaringan objek dan hubungan di antaranya. Misalnya, objek mungkin adalah karyawan dalam database sumber daya manusia, dan Anda mungkin ingin memfasilitasi pertanyaan seperti "menemukan semua karyawan yang secara langsung atau tidak langsung bekerja untuk Scott."
  • Telemetri dan database deret waktu adalah kumpulan objek khusus tambahan. Database telemetri secara efisien mengindeks data di berbagai penyimpanan kolom dan struktur dalam memori, menjadikannya pilihan optimal untuk menyimpan dan menganalisis sejumlah besar data telemetri dan deret waktu.

Kriteria pilihan utama

Untuk mempersempit pilihan, mulailah dengan menjawab pertanyaan-pertanyaan ini:

  • Apakah Anda memerlukan penyimpanan penyajian yang dapat berfungsi sebagai jalur panas untuk data Anda? Jika ya, persempit opsi Anda dengan opsi yang dioptimalkan untuk lapisan penyajian kecepatan.

  • Apakah Anda memerlukan dukungan pemrosesan paralel (MPP) secara besar-besaran, yang mana kueri didistribusikan secara otomatis di beberapa proses atau node? Jika ya, pilih opsi yang mendukung peluasan skala kueri.

  • Apakah Anda lebih suka menggunakan penyimpanan data relasional? Jika ya, persempit opsi Anda dengan yang memiliki model database relasional. Namun, perhatikan bahwa beberapa penyimpanan non-relasional mendukung sintaksis SQL untuk kueri, dan alat seperti PolyBase dapat digunakan untuk mengkueri penyimpanan data non-relasional.

  • Apakah Anda mengumpulkan data deret waktu? Apakah Anda menggunakan data tambahan saja?

Matriks kemampuan

Tabel berikut merangkum perbedaan utama kemampuan.

Kemampuan secara umum

Kemampuan Microsoft Azure SQL Database Kumpulan Azure Synapse SQL Kumpulan Azure Synapse Spark Azure Data Explorer HBase/Phoenix di HDInsight Hive LLAP di HDInsight Azure Analysis Services Azure Cosmos DB
Apakah layanan terkelola? Ya Ya Ya Ya Ya 1 Ya 1 Ya Ya
Model database utama Relasional (format penyimpanan kolom saat menggunakan indeks penyimpan kolom) Tabel relasional dengan penyimpanan kolom Penyimpanan kolom lebar Relasional (penyimpanan kolom), telemetri, dan penyimpanan deret waktu Penyimpanan kolom lebar Hive/In-Memory Model semantik tabular Penyimpanan dokumen, grafik, penyimpanan nilai kunci, penyimpanan kolom lebar
Dukungan bahasa SQL Ya Ya Ya Ya Ya (menggunakan driver Phoenix JDBC) Ya No Ya
Dioptimalkan untuk lapisan penyajian kecepatan Ya 2 Ya 3 Ya Ya Ya Ya No Ya

[1] Dengan konfigurasi dan penskalaan manual.

[2] Menggunakan tabel dan indeks hash atau non-kluster yang dioptimalkan memori.

[3] Didukung sebagai output Azure Stream Analytics.

Kemampuan skalabilitas

Kemampuan Microsoft Azure SQL Database Kumpulan Azure Synapse SQL Kumpulan Azure Synapse Spark Azure Data Explorer HBase/Phoenix di HDInsight Hive LLAP di HDInsight Azure Analysis Services Azure Cosmos DB
Server regional redundan untuk ketersediaan tinggi Ya No No Ya Ya No Ya Ya
Mendukung peluasan skala kueri Tidak Ya Ya Ya Ya Ya Ya Ya
Skalabilitas dinamis (peningkatan skala) Ya Ya Ya Ya No No Ya Ya
Mendukung penembolokan data dalam memori Ya Ya Ya Ya No Ya Ya Tidak

Kemampuan keamanan

Kemampuan Microsoft Azure SQL Database Azure Synapse Azure Data Explorer HBase/Phoenix di HDInsight Hive LLAP di HDInsight Azure Analysis Services Azure Cosmos DB
Autentikasi SQL / Microsoft Entra ID SQL / Microsoft Entra ID Microsoft Entra ID local / Microsoft Entra ID 1 local / Microsoft Entra ID 1 Microsoft Entra ID pengguna database / ID Microsoft Entra melalui kontrol akses (IAM)
Enkripsi data saat istirahat Ya 2 Ya 2 Ya Ya 1 Ya 1 Ya Ya
Keamanan tingkat baris Ya Ya 3 Ya Ya 1 Ya 1 Ya Tidak
Dudukungan firewall Ya Ya Ya Ya 4 Ya 4 Ya Ya
Penyelubungan data dinamis Ya Ya Ya Ya 1 Ya No Tidak

[1] Mengharuskan penggunaan kluster Microsoft Azure HDInsight yang bergabung dengan domain.

[2] Memerlukan penggunaan enkripsi data transparan (TDE) untuk mengenkripsi dan mendekripsi data tidak aktif.

[3] Filter hanya memprediksi. Lihat Keamanan Tingkat Baris

[4] Saat digunakan dalam Azure Virtual Network. Lihat Memperluas Azure HDInsight menggunakan Azure Virtual Network.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Langkah berikutnya