Mendesain ulang penyimpanan sejumlah besar data sensor

8

Saya telah ditugaskan untuk mengimplementasikan / mendesain ulang solusi yang akan menyimpan data cuaca dari sensor array. Array akan terdiri dari ~ 40 menara, masing-masing dengan sekitar ~ 10 sensor masing-masing yang akan mencicipi kondisi atmosfer pada interval 10 detik untuk jumlah waktu (tahun) yang tidak ditentukan. Beberapa aplikasi dan persyaratan untuk tugas ini adalah sebagai berikut:

  • Kelola dan ambil konfigurasi menara / sensor untuk memahami analisis data.
  • Visualisasi data dengan sensor atau interval waktu untuk pengamatan meteorologi.
  • Menyediakan pelanggan dengan sumber daya / set data yang dapat diandalkan dan persisten untuk membandingkan kinerja model dan sensor (mungkin memerlukan beberapa pemrosesan pasca untuk dikirimkan dalam format yang diperlukan?).

Catatan : Solusi saat ini (diimplementasikan sebagai bukti konsep, dengan 5 menara) menyimpan data sebagai file datar (satu file per jam).

Saya awalnya tidak yakin apakah ini akan menjadi masalah data besar di masa depan, jadi saya meneliti beberapa solusi untuk database relasional dan NoSQL, tetapi saya merasa saya perlu sedikit lebih banyak panduan, karena saya bukan ahli dalam manajemen data.

Salah satu solusi yang saya pikir adalah untuk menyimpan data dalam database relasional yang diindeks oleh menara, sensor, dan cap waktu dan mempartisi tabel berdasarkan tanggal.

Lain, berdasarkan penskalaan masa depan, adalah untuk menyimpannya dalam database NoSQL tipe dokumen, seperti MongoDB, dan meniru struktur solusi saat ini.

Apakah ada pendekatan yang baik ini? Jika tidak, solusi apa yang lebih baik / direkomendasikan? Juga, apakah perlu mendesain ulang solusi saat ini? Saya diberitahu bahwa alasan untuk menggunakan file flat adalah bahwa mereka percaya database relasional akan mengambil terlalu banyak overhead. Apakah ada cara untuk menghindari ini jika memang begitu?

Julia
sumber

Jawaban:

11

Sejak (a) informasi yang Anda bekerja dengan muncul untuk menjadi, dalam dirinya sendiri, sumber daya organisasi yang sangat berharga, dan (b) volume data akan cukup, saya jelas akan (c) membangun relasional database di salah satu platform SQL utama.

Tentu saja —dari perspektif yang sangat umum — membutuhkan tiga faktor penting:

  1. Skema konseptual yang didefinisikan dengan jelas , di mana seseorang harus mengidentifikasi dan menandai dengan tepat prototipe hal-hal, yaitu, jenis entitas (termasuk properti dan keterkaitannya ) yang relevan dalam lingkungan bisnis tempat Anda bekerja (mis. Menara dan Sensor yang Anda sebutkan).

    Seperti yang Anda ketahui, poin ini mencakup membangun komunikasi yang berkelanjutan dan produktif dengan para pakar bisnis.

  2. Sebuah logis tata letak yang mencerminkan tingkat konseptual dengan akurasi, dengan cara tabel (yaitu, hubungan matematika) memegang baik-delimited kolom dengan tepat kolom nama dan jenis (yaitu, atribut relasi) dan semua yang sesuai kendala untuk memastikan bahwa dipatuhi data dengan semua aturan ditentukan pada tingkat sebelumnya.

    Oleh karena itu, di sinilah kekuatan besar model relasional ikut bermain (meskipun keuntungannya memiliki dampak positif pada tingkat abstraksi lain).

  3. Sebuah fisik pengaturan itu, misalnya, meningkatkan kecepatan eksekusi dari operasi manipulasi data logis -dynamic- dan jaminan kendala logis.

    Karena model relasional menawarkan kemandirian data fisik , sistem manajemen basis data (DBMS for brevity) dapat menyediakan segala jenis struktur pada level ini, tidak hanya indeks, untuk mendukung definisi logis. Dalam kasus platform SQL terkemuka, ya, ini biasanya menyiratkan, tepatnya, menyiapkan strategi pengindeksan berdasarkan kecenderungan permintaan spesifik basis data, dan Anda mengemukakan pertimbangan yang sangat menarik sehubungan dengan beberapa konfigurasi yang mungkin, tetapi, tanpa mengetahui yang khusus kebutuhan informasi dengan ketelitian, menawarkan saran khusus dalam hal ini tidak akan cocok.

    Elemen lain yang layak dievaluasi adalah, misalnya, meningkatkan infrastruktur jaringan untuk meningkatkan bandwidth, memungkinkan konfigurasi server yang tepat (perangkat keras dan perangkat lunak), dll. Dan, jika, dan hanya jika, seorang praktisi cukup berkualitas, ia bahkan dapat memodifikasi kode sumber DBMS pilihan (lebih layak di lingkungan open source, secara alami).

Dengan cara ini, aspek-aspek berikut ini yang Anda sorot

  • Kelola dan ambil konfigurasi menara / sensor untuk memahami analisis data.
  • Visualisasi data dengan sensor atau interval waktu untuk pengamatan meteorologi.
  • Menyediakan pelanggan dengan sumber daya / set data yang dapat diandalkan dan persisten untuk membandingkan kinerja model dan sensor (mungkin memerlukan beberapa pemrosesan pasca untuk dikirimkan dalam format yang diperlukan?).

akan ditangani dengan baik, karena Anda akan dapat dengan mudah menyatakan pertanyaan, misalnya, mendapatkan informasi dalam bentuk yang sangat bermakna. Misalnya, Anda bisa mendapatkan data yang terkait

  • Sensor yang diidentifikasi oleh SensorNumber 1750, dipasang di Tower yang diidentifikasi oleh TowerNumber 31, antara Tanggal 1 June 2017dan Tanggal27 June 2017 .

Selanjutnya, karena (1) data dalam database relasional dikelola secara logis dalam hal set dengan bantuan operasi berdasarkan aljabar relasional , dan (2) mesin SQL yang berbeda dioptimalkan secara fisik (beberapa lebih dari yang lain) untuk ditetapkan pemrosesan , Anda dapat, misalnya,

  • bandingkan set a dengan set b ;
  • gabung set c dengan set d ;
  • dapatkan sub set f melalui pembatasan pada set e ;
  • menghasilkan n himpunan bagian dari n set persimpangan;
  • proyek n atribut dari himpunan f
  • mengambil informasi dari set z yang merupakan hasil dari gabungan set x dengan set y ;
  • dan seterusnya.

Kemungkinan manipulasi data sebenarnya sangat besar — ​​menunjukkan keserbagunaan paradigma relasional yang tak tertandingi — karena Anda dapat bekerja tidak hanya dengan tabel dasar (yang dideklarasikan dengan CREATE TABLE … ( … );pernyataan) tetapi juga dengan turunan (yang diekspresikan melalui SELECT …;operasi, terkadang ditetapkan sebagai VIEWs) . Dengan kata lain, Anda dapat (i) mengekspresikan struktur data baru berdasarkan (ii) yang sebelumnya beroperasi pada (iii) konstruksi relasional tunggal yang mendasarinya, yaitu, hubungan matematika.

Jelas, susunan tabel dasar dan kolom dari basis data relasional dapat berkembang, dan (a) tabel atau kolom dasar baru dapat dimasukkan ke dalamnya ketika (b) melacak jenis entitas baru atau properti jenis entitas dianggap berharga dalam konteks bisnis yang bersangkutan. Dengan kata lain, baik struktur awal maupun batasan pembukaan database relasional diharapkan tidak statis atau tidak berubah. Selain itu, database yang diorganisir dengan tepat sejak awal cenderung lebih mudah untuk dimodifikasi ketika persyaratan informasi baru muncul.

Dalam kesepakatan dengan pertimbangan di atas, format logis dari set yang berlaku harus diproduksi secara deklaratif , pada tingkat logis basis data. The grafis atau presentasi format set (misalnya, pewarnaan atau wajah font yang digunakan) harus pada gilirannya akan diproses dengan cara kode dari satu atau lebih program aplikasi (ya, sebagian besar dalam prosedural dengan cara, mungkin dengan bantuan dari sebuah objek kerangka kerja berorientasi, HTML, dll.), untuk membuat akses dan presentasi dari set tersebut ramah pengguna. Tentu saja, Anda juga dapat menggunakan perangkat lunak pelaporan yang terhubung dengan database Anda.

Pemodelan basis data relevansi

Mengingat bahwa Anda akan bekerja dengan data Sensor (yang, di antara fitur-fitur lainnya, biasanya melibatkan informasi dalam bentuk rangkaian waktu ), Anda mungkin menemukan bantuan beberapa desain basis data dan prinsip-prinsip administrasi keseluruhan yang terkandung dalam dua jawaban luar biasa, oleh @PerformanceDBA , untuk pertanyaan yang berjudul:

Pendekatan Relational, Flat File, dan NoSQL

Model relasional oleh Dr. Edgar Frank Codd , meskipun diterbitkan pada tahun 1970, tetap merupakan metode yang paling modern dan elegan (berdasarkan logika dan teori himpunan) untuk mengatasi masalah manajemen data. SQL DBMS yang berbeda, pada gilirannya, merupakan pendekatan yang paling populer (yang, meskipun tidak sepenuhnya sesuai, tetap sangat kuat) untuk sistem yang diusulkan dalam teori relasional, dan beberapa dari mereka telah sangat dioptimalkan (misalnya, mengenai fisik mereka). mekanisme level) bahkan untuk beberapa dekade sekarang. Selain itu, platform SQL utama tentu saja dapat (dan akan dapat) bekerja dengan penyimpanan paling mutakhir (misalnya, hard drive) dan pemrosesan (misalnya, CPU) teknologi yang cukup efisien.

Ketika dibangun di atas DBMS yang kuat, basis data relasional yang dirancang dengan baik pada tingkat konseptual, logis dan fisik jelas akan menjadi aset mandiri, deskriptif diri dan protektif diri yang (1) dapat dipercaya dan (2) menawarkan respon cepat, dua aspek yang, seperti yang Anda tahu, sangat penting.

File datar

Karena itu, klaim yang mengikutinya

Saya diberitahu bahwa alasan untuk menggunakan file flat adalah bahwa mereka percaya database relasional akan mengambil terlalu banyak overhead.

mudah dibuang, karena pendekatan file datar adalah:

  • pra-ilmiah;
  • jauh dari optimal untuk volume data yang besar;
  • terlalu rumit;
  • tergantung pada program aplikasi (dan Anda harus mengimplementasikan sendiri sebagian besar fitur yang ditawarkan DBMS secara asli);
  • kinerjanya akan mudah dirusak;
  • dll.

Sedangkan mode relasional yang jauh lebih nyaman, untuk sedikitnya:

  • akan menawarkan skalabilitas yang besar (ini adalah level fisik yang independen, sehingga Anda dapat meningkatkan mekanisme fisik yang mendasarinya sesuai kebutuhan);
  • akan membawa gaya sederhana untuk memanipulasi data (melalui operasi abstrak ) dan
  • dapat bekerja dengan beberapa program aplikasi secara bersamaan (misalnya, satu atau lebih aplikasi seluler, dan / atau satu atau lebih aplikasi web, dan / atau satu atau lebih aplikasi desktop, dll.).

Namun, jika Anda memilih untuk menggunakan file flat, Anda harus mengevaluasi penggunaan utilitas yang kuat seperti Awk itu, meskipun bukan DBMS (dan tidak dirancang seperti itu), memasok sumber daya yang berguna untuk menangani file , catatan , bidang , dll. Lihat Panduan Pengguna Awk GNU untuk informasi lebih lanjut tentang subjek ini.

NoSQL

“Data tidak terstruktur” dan ketentuan terkait

Sesuai propaganda mereka, pembenaran awal untuk penggunaan DBMS NoSQL adalah bahwa mereka dimaksudkan untuk digunakan dalam domain bisnis yang melibatkan penanganan "data tidak terstruktur", sehingga menyerukan pertanyaan:

  • Apa yang dimaksud dengan ungkapan "data tidak terstruktur"?

Dalam hal itu, harus dikatakan bahwa data, pada dasarnya, adalah terstruktur; jika tidak memiliki struktur maka itu akan menjadi sesuatu yang tidak berarti, akibatnya hal seperti itu (i) tidak dapat dianggap data dan (ii) tidak akan layak untuk dikelola. Oleh karena itu, "data tidak terstruktur" adalah ekspresi yang kontradiktif dan tidak menguntungkan.

Ungkapan lain dari konteks itu adalah "data semi-terstruktur". Ungkapan itu menunjukkan bahwa ada data yang terstruktur "sebagian" atau "setengah" sehingga, sesuai dengan paragraf sebelumnya, hanya "bagian" atau "setengah" yang terstruktur dapat berupa data aktual, sisanya "bagian" atau "setengah" hanyalah hal yang tidak berbentuk karena tidak memiliki struktur, dan tidak dapat disebut sebagai data.

Namun, istilah khas lain yang ditemukan dalam pemasaran NoSQL adalah "data polimorfik". Jika istilah tersebut menandakan sesuatu seperti "data yang memiliki banyak bentuk berbeda", maka itu sebenarnya data biasa , itu muncul dalam berbagai bentuk seperti biasa. Dan karena memiliki banyak bentuk yang berbeda, maka ia menyajikan banyak struktur yang berbeda , sehingga tidak ada yang istimewa tentang "jenis" data ini.

Tidak perlu dikatakan, data dan struktur data selalu rentan terhadap perubahan , maka tidak ada yang tidak biasa dalam hal ini juga.

Pertumbuhan volume data

Terbukti, volume informasi yang dikelola melalui sistem komputerisasi telah meningkat selama bertahun-tahun — dan akan terus tumbuh secara eksponensial seiring berjalannya waktu, karena sistem baru sedang dibangun setiap hari—, tetapi itu adalah fakta yang tidak ada hubungannya dengan struktur informasi itu sendiri .

Kurangnya landasan teori yang bulat

Keterbatasan kritis sistem NoSQL (ada kelas yang berbeda, misalnya berbasis dokumen - dan grafik ) adalah bahwa tidak ada produk saat ini - walaupun banyak dipasarkan dan dilabeli sebagai "modern" - memiliki dasar teori yang kuat (jika sama sekali) yang mendukung masing-masing dan setiap orang dari tiga elemen paling penting dari DBMS yang tepat, yaitu alat untuk data (a) definisi, (b) manipulasi, dan (c) penyempitan. Dengan demikian, pendekatan NoSQL sebenarnya menunjukkan regresi untuk era kuno di mana penanganan data dilakukan dalam ad hoc dan tentu saja tidak sehat dari tindakan, dengan semua kompleksitas perlu menyertainya.

Saat ini, sistem grafik termasuk dalam spektrum "NoSQL". Produk perangkat lunak ini mengundang untuk mengelola data berdasarkan operasi pada dua struktur yang berbeda: simpul dan hubungan - yang, sekali lagi, bertentangan dengan istilah "data tidak terstruktur" -, dan mereka menonjol dalam kelompok "NoSQL" karena mereka melakukan memiliki dasar matematika. Namun, produk grafik agak mirip dengan platform jaringan , yang dianggap usang sejak puluhan tahun yang lalu (kelemahan yang jelas adalah bahwa, seperti yang disarankan di atas, mereka membutuhkan dua struktur untuk representasi data, sementara DBMS relasional - sesuai prinsip informasi - hanya membutuhkan satu).

Bahkan jika penciptaan sistem NoSQL yang berbeda secara kronologis lebih baru dibandingkan dengan asal-usul mayoritas DBMS SQL, sebagian besar konsep yang menjadi dasar produk NoSQL, pada dasarnya, primitif .

Program NoSQL harus digunakan, sebagian besar, dalam skenario di mana, misalnya,

  • personel TI tidak memiliki keterampilan teknis yang diperlukan untuk menentukan (atau menentukan secara tepat) struktur data yang menarik — misalnya, karena kerumitannya—; dan / atau
  • organisasi tidak dapat membeli pendidikan dan pelatihan yang sesuai untuk staf saat ini, atau tidak dapat mempekerjakan staf baru yang memiliki pendidikan dan pelatihan yang diperlukan; dan / atau
  • ketika integritas dan konsistensi data tidak terlalu penting; dan / atau
  • ketika memadukan data terkait dengan sistem kritis misi yang menuntut presisi tinggi tidak diharapkan.

Tetapi, bahkan jika struktur data yang dipermasalahkan tidak didefinisikan sebelum pembuatan sistem yang berkenaan, satu bijih lebih banyak orang tentu harus

  • temukan struktur yang disebutkan di atas,
  • buang semua "gangguan" di sekitarnya dan
  • kumpulkan dan tautkan data yang tepat

setelah database dan aplikasi telah memasuki tahap produksi untuk bisa mendapatkan yang terbaik dari semua sumber daya yang diinvestasikan dalam proyek, maka penggambaran struktur data adalah tugas yang tidak dapat dilewati, itu harus dilakukan lebih cepat atau nanti.

Jadi, selagi menggunakan cara NoSQL adalah suatu kemungkinan, semua faktor yang disebutkan sebelumnya harus dipertimbangkan.

Metode yang paling kuat

Sebaliknya, mendekati persyaratan informasi dari lingkungan bisnis secara relasional — yakni, dengan paradigma umum di belakang — menawarkan kemungkinan (1) mengelola data dalam struktur alaminya sejak awal — yang memudahkan integrasi dengan sumber data lainnya— dan juga dari (2) memproduksi struktur baru yang dapat dipercaya melalui manipulasi instrumen tunggal — sebagaimana dijelaskan di bagian sebelumnya — yang memiliki dasar ilmiah yang kuat.

Menurut uraian Anda tentang skenario yang dimaksud, Anda telah mengidentifikasi struktur tertentu dalam hal kebutuhan organisasi yang relevan, jadi saya sarankan meminta agar pakar domain bisnis memvalidasinya. Secara berturut-turut, saya sarankan mengambil keuntungan dari (i) konstruksi — hubungan, kendala, dan operasi — yang disediakan oleh model relasional untuk menangani struktur tersebut dan data masing-masing, dan dari (ii) SQL DBMS pilihan Anda yang kemungkinan besar akan menawarkan alat fisik yang sangat efisien yang dapat memenuhi tuntutan saat ini dan akan memasok skalabilitas di masa depan.

MDCCL
sumber
1
dijelaskan dengan sangat profesional, saya mencoba mengatakan sesuatu yang serupa tetapi berpikir dalam satu atau dua paragraf, Tidak akan tahu bagaimana cara menjawab dengan lebih baik. Juga terima kasih MDCCL, jawaban Anda memberi saya beberapa jawaban. Saya bertanya pada diri sendiri tentang paradigma nonSQL, memikirkan beberapa hal yang Anda sebutkan, sekarang saya tahu saya tidak salah.
arana
Terima kasih banyak atas kata-kata baik Anda. Di sisi lain, dengan senang hati, saya senang memberi kontribusi.
MDCCL
Isinya bagus, tetapi gambar model logis yang sebenarnya atau ontologi sangat berharga ...
kensai