Bagikan melalui


Kriteria untuk memilih penyimpanan data

Artikel ini menjelaskan kriteria perbandingan untuk Anda gunakan saat Anda mengevaluasi penyimpanan data. Tujuannya adalah untuk membantu Anda menentukan jenis penyimpanan data mana yang dapat memenuhi persyaratan solusi Anda.

Pertimbangan umum

Ingatlah pertimbangan berikut saat Anda membuat pilihan.

Persyaratan fungsional

  • Format data: Jenis data apa yang ingin Anda simpan? Jenis umum termasuk data transaksional, objek JSON, telemetri, indeks pencarian, atau file datar.
  • Ukuran data: Seberapa besar entitas yang perlu Anda simpan? Apakah entitas ini perlu dipertahankan sebagai satu dokumen, atau dapatkah mereka dibagi di beberapa dokumen, tabel, dan koleksi?
  • Skala dan struktur: Berapa jumlah keseluruhan kapasitas penyimpanan yang Anda butuhkan? Apakah Anda mengantisipasi pemisahan data Anda?
  • Hubungan data: Apakah data Anda perlu mendukung hubungan satu-ke-banyak atau banyak-ke-banyak? Apakah hubungan itu sendiri merupakan bagian penting dari data? Apakah Anda perlu menggabungkan atau menggabungkan data dari dalam himpunan data yang sama atau dari himpunan data eksternal?
  • Model konsistensi: Seberapa penting pembaruan yang dibuat dalam satu simpul untuk muncul di simpul lain sebelum perubahan lebih lanjut dapat dilakukan? Bisakah Anda menerima konsistensi akhirnya? Apakah Anda memerlukan jaminan ACID untuk transaksi?
  • Fleksibilitas skema: Jenis skema apa yang akan Anda terapkan pada data Anda? Apakah Anda akan menggunakan skema tetap, pendekatan skema tulis, atau pendekatan skema baca?
  • Konkurensi: Mekanisme konkurensi seperti apa yang ingin Anda gunakan saat memperbarui dan menyinkronkan data? Apakah aplikasi akan melakukan banyak pembaruan yang berpotensi berkonflik? Jika demikian, Anda mungkin memerlukan penguncian rekaman dan kontrol konkurensi pesimis. Atau, dapatkah Anda mendukung kontrol konkurensi optimistis? Jika demikian, apakah kontrol konkurensi berbasis tanda waktu sederhana cukup, atau apakah Anda memerlukan fungsionalitas tambahan kontrol konkurensi multiversi?
  • Pergerakan data: Apakah solusi Anda perlu melakukan tugas ETL untuk memindahkan data ke penyimpanan atau gudang data lain?
  • Siklus hidup data: Apakah data menulis sekali, baca-banyak? Apakah data dapat dipindahkan ke penyimpanan sejuk atau dingin?
  • Fitur lain yang didukung: Apakah Anda memerlukan fitur spesifik lainnya, seperti validasi skema, agregasi, pengindeksan, pencarian teks lengkap, MapReduce, atau kemampuan kueri lainnya?

Persyaratan nonfungsi

  • Performa dan skalabilitas: Apa persyaratan performa data Anda? Apakah Anda memiliki persyaratan khusus untuk tingkat penyerapan data dan tingkat pemrosesan data? Berapa waktu respons yang dapat diterima untuk kueri dan agregasi data setelah diserap? Seberapa besar peningkatan penyimpanan data yang akan Anda perlukan? Apakah beban kerja Anda lebih berat baca atau tulis?
  • Keandalan: Perjanjian tingkat layanan keseluruhan apa yang perlu Anda dukung? Tingkat toleransi kesalahan apa yang perlu Anda berikan untuk konsumen data? Kemampuan pencadangan dan pemulihan seperti apa yang Anda butuhkan?
  • Replikasi: Apakah data Anda perlu didistribusikan di antara beberapa replika atau wilayah? Apa jenis kemampuan replikasi data yang Anda butuhkan?
  • Batas: Apakah batas penyimpanan data tertentu akan mendukung kebutuhan Anda untuk skala, jumlah koneksi, dan throughput?

Manajemen dan biaya

  • Layanan terkelola: Jika memungkinkan, gunakan layanan data terkelola, kecuali Anda memerlukan kemampuan khusus yang hanya dapat ditemukan di penyimpanan data yang dihosting infrastruktur sebagai layanan (IaaS).
  • Ketersediaan wilayah: Untuk layanan terkelola, apakah layanan tersedia di semua wilayah Azure? Apakah solusi Anda perlu dihosting di wilayah Azure tertentu?
  • Portabilitas: Apakah data Anda perlu dimigrasikan ke lokal, pusat data eksternal, atau lingkungan hosting cloud lainnya?
  • Lisensi: Apakah Anda memiliki preferensi kepemilikan versus jenis lisensi OSS? Apakah ada batasan eksternal lainnya pada jenis lisensi apa yang dapat Anda gunakan?
  • Biaya keseluruhan: Berapa biaya keseluruhan penggunaan layanan dalam solusi Anda? Berapa banyak instans yang perlu dijalankan untuk mendukung persyaratan waktu kerja dan throughput Anda? Pertimbangkan biaya operasi dalam perhitungan ini. Salah satu alasan untuk lebih memilih layanan terkelola adalah berkurangnya biaya operasional.
  • Efektivitas biaya: Dapatkah Anda mempartisi data Anda untuk menyimpannya lebih hemat biaya? Misalnya, dapatkah Anda memindahkan objek besar dari database relasional yang mahal ke penyimpanan objek?

Keamanan

  • Keamanan: Jenis enkripsi apa yang Anda butuhkan? Apakah Anda memerlukan enkripsi saat istirahat? Mekanisme autentikasi apa yang ingin Anda gunakan untuk terhubung ke data Anda?
  • Audit: Jenis log audit apa yang perlu Anda hasilkan?
  • Persyaratan jaringan: Apakah Anda perlu membatasi atau mengelola akses ke data Anda dari sumber daya jaringan lain? Apakah data harus dapat diakses hanya dari dalam lingkungan Azure? Apakah data harus dapat diakses dari alamat IP atau subnet tertentu? Apakah data harus dapat diakses dari aplikasi atau layanan yang dihosting secara lokal atau di pusat data eksternal lainnya?

DevOps

  • Set keterampilan: Apakah ada bahasa pemrograman, sistem operasi, atau teknologi lain yang dipakai tim Anda? Apakah ada hal lain yang sulit bagi tim Ada untuk bekerja?
  • Klien: Apakah ada dukungan klien yang baik untuk bahasa pengembangan Anda?

Langkah berikutnya