Langsung ke konten utama

Jelajahi konsep data inti

Perkenalan

Selesa1 orang

Selama beberapa dekade terakhir, jumlah data yang dihasilkan sistem, aplikasi, dan perangkat telah meningkat secara signifikan. Data ada di mana-mana. Data tersedia dalam berbagai struktur dan format. Memahami data dan menjelajahinya mengungkapkan fakta menarik, dan membantu Anda mendapatkan wawasan yang bermakna.

Dalam modul ini, Anda akan belajar tentang bagaimana Anda dapat mengatur dan memproses data. Anda akan belajar tentang database relasional dan non-relasional, dan bagaimana data ditangani melalui pemrosesan transaksional, dan melalui pemrosesan data batch dan streaming.

Untuk mempertimbangkan bagaimana alat dan teknik yang dipelajari dapat diterapkan dalam skenario dunia nyata, bayangkan Anda adalah analis data untuk organisasi konsumen besar. Organisasi ingin memahami pola pembelian pelanggan dari supermarket. Organisasi ini memiliki sejumlah dataset dari berbagai sumber, seperti sampai informasi (point of sale), data cuaca, dan data liburan. Organisasi ingin menggunakan teknologi Azure untuk memahami dan menganalisis dataset ini. Skenario ini akan digunakan di seluruh modul.


Mengidentifikasi kebutuhan akan solusi data

Selesai

Anda dapat mengkategorikan data dalam berbagai cara, tergantung tidak hanya pada bagaimana itu terstruktur, tetapi juga pada bagaimana data digunakan. Di unit ini, Anda akan belajar tentang karakteristik berbagai jenis data.

Menjelaskan karakteristik data relasional dan non-relasional

Database relasional mungkin menyediakan model yang paling dipahami untuk menyimpan data. Struktur tabel dan kolom yang sederhana membuatnya mudah digunakan pada awalnya, tetapi struktur yang kaku dapat menyebabkan beberapa masalah. Misalnya, dalam database yang menyimpan informasi pelanggan, bagaimana Anda menangani pelanggan yang memiliki lebih dari satu alamat? Apakah Anda menambahkan kolom untuk menyimpan detail untuk setiap alamat? Jika demikian, berapa banyak kolom ini yang harus Anda tambahkan? Jika Anda mengizinkan tiga alamat, apa yang terjadi jika pelanggan hanya memiliki satu alamat? Apa yang Anda simpan di kolom cadangan? Apa yang terjadi jika Anda tiba-tiba memiliki pelanggan dengan empat alamat? Demikian pula, informasi apa yang Anda simpan di alamat (nama jalan, nomor rumah, kota, kode pos)? Apa yang terjadi jika rumah memiliki nama daripada nomor, atau terletak di suatu tempat yang tidak menggunakan kode pos?

Anda dapat memecahkan masalah ini dengan menggunakan proses yang disebut normalisasi. Biasanya, hasil akhir dari proses normalisasi adalah bahwa data Anda dibagi menjadi sejumlah besar tabel sempit dan terdefinisi dengan baik (tabel sempit adalah tabel dengan beberapa kolom), dengan referensi dari satu tabel ke tabel lainnya, seperti yang ditunjukkan pada gambar di bawah ini. Namun, query data sering membutuhkan reassembling informasi dari beberapa tabel dengan bergabung data kembali bersama-sama pada run-time (diilustrasikan oleh garis dalam diagram). Jenis pertanyaan ini bisa mahal.

Gambar memperlihatkan tabel relasional yang dinormalisasi

Database non-relasional memungkinkan Anda untuk menyimpan data dalam format yang lebih cocok dengan struktur asli. Misalnya, dalam database dokumen, Anda dapat menyimpan rincian setiap pelanggan dalam satu dokumen, seperti yang ditunjukkan oleh contoh di unit sebelumnya. Mengambil rincian pelanggan, termasuk alamat, adalah masalah membaca satu dokumen. Ada beberapa kelemahan untuk menggunakan database dokumen sekalipun. Jika dua pelanggan hidup bersama dan memiliki alamat yang sama, dalam database relasional Anda hanya perlu menyimpan informasi alamat sekali. Dalam diagram di bawah ini, Jay dan Frances Adams sama-sama berbagi alamat yang sama.

Gambar memperlihatkan tabel relasional yang dinormalisasi dengan data bersama

Dalam database dokumen, alamat akan diduplikasi dalam dokumen untuk Jay dan Francis Adams. Duplikasi ini tidak hanya meningkatkan penyimpanan yang diperlukan, tetapi juga dapat membuat pemeliharaan lebih kompleks (jika alamat berubah, Anda harus memodifikasinya dalam dua dokumen).

JSON
## Document for Jay Adams ##
{
"customerID": "1",
"name":
{
"firstname": "Jay",
"lastname": "Adams"
},
"address":
{
"number": "12",
"street": "Park Street",
"city": "Some City",
}
}

## Document for Frances Adams ## {
"customerID": "4",
"name":
{
"firstname": "Francis",
"lastname": "Adams"
},
"address":
{
"number": "12",
"street": "Park Street",
"city": "Some City",
}
}

Jelaskan beban kerja transaksional

Database relasional dan non-relasional cocok untuk beban kerja yang berbeda. Penggunaan utama database relasional adalah untuk menangani pemrosesan transaksi.

Transaksi adalah urutan operasi yang bersifat atom. Ini berarti bahwa semua operasi dalam urutan harus diselesaikan dengan sukses, atau jika ada yang tidak beres, semua operasi berjalan sejauh ini dalam urutan harus dibatalkan. Transfer bank adalah contoh yang baik; Anda mengurangi dana dari satu akun dan mengkreditkan dana yang setara dengan akun lain. Jika sistem gagal setelah dikurangi dana, mereka harus dipulihkan di akun asli (mereka tidak boleh hilang). Anda kemudian dapat mencoba melakukan transfer lagi. Demikian pula, Anda seharusnya tidak dapat mengkredit akun dua kali dengan dana yang sama.

Setiap transaksi database memiliki titik awal yang ditentukan, diikuti oleh langkah-langkah untuk memodifikasi data dalam database. Pada akhirnya, database baik melakukan perubahan untuk membuatnya permanen, atau memutar kembali perubahan ke titik awal, ketika transaksi dapat dicoba lagi.

Database transaksional harus mematuhi sifat ACID (Atomicity, Consistency, Isolation, Durability) untuk memastikan bahwa database tetap konsisten saat memproses transaksi.

  • Atomicity menjamin bahwa setiap transaksi diperlakukan sebagai satu unit,yang berhasil sepenuhnya, atau gagal sepenuhnya. Jika salah satu pernyataan yang merupakan transaksi gagal diselesaikan, seluruh transaksi gagal dan database dibiarkan tidak berubah. Sistem atom harus menjamin atomitas dalam setiap situasi, termasuk kegagalan daya, kesalahan, dan crash.

  • Konsistensi memastikan bahwa transaksi hanya dapat mengambil data dalam database dari satu keadaan yang valid ke negara lain. Database yang konsisten tidak boleh kehilangan atau membuat data dengan cara yang tidak dapat dipertanggungjawabkan. Dalam contoh transfer bank yang dijelaskan sebelumnya, jika Anda menambahkan dana ke akun, harus ada pengurangan dana yang sesuai di suatu tempat, atau catatan yang menjelaskan dari mana dana berasal jika telah diterima secara eksternal. Anda tidak bisa tiba-tiba menghasilkan (atau kehilangan) uang.

  • Isolasi memastikan bahwa eksekusi transaksi bersamaan meninggalkan database dalam keadaan yang sama yang akan diperoleh jika transaksi dilakukan secara berurutan. Proses bersamaan tidak dapat melihat data dalam keadaan yang tidak konsisten (misalnya, dana telah dikurangkan dari satu akun, tetapi belum dikreditkan ke akun lain.)

  • Daya tahan menjamin bahwa setelah transaksi dilakukan, itu akan tetap berkomitmen bahkan jika ada kegagalan sistem seperti pemadaman listrik atau kecelakaan.

Sistem database yang memproses beban kerja transaksional secara inheren kompleks. Mereka perlu mengelola pengguna bersamaan yang mungkin mencoba mengakses dan memodifikasi data yang sama pada saat yang sama, memproses transaksi secara terpisah sambil menjaga database tetap konsisten dan dapat dipulihkan. Banyak sistem menerapkan konsistensi relasional dan isolasi dengan menerapkan kunci ke data ketika diperbarui. Kunci mencegah proses lain dari membaca data sampai kunci dilepaskan. Kunci hanya dilepaskan ketika transaksi melakukan atau berguling kembali. Penguncian yang luas dapat menyebabkan kinerja yang buruk, sementara aplikasi menunggu kunci dilepaskan.

Database terdistribusi banyak digunakan di banyak organisasi. Database terdistribusi adalah database di mana data disimpan di lokasi fisik yang berbeda. Ini dapat disimpan di beberapa komputer yang terletak di lokasi fisik yang sama (misalnya, pusat data), atau dapat tersebar melalui jaringan komputer yang saling berhubungan. Jika dibandingkan dengan sistem database yang tidak terdistribusi, setiap pembaruan data ke database terdistribusi akan membutuhkan waktu untuk diterapkan di beberapa lokasi. Jika Anda memerlukan konsistensi transaksional dalam skenario ini, kunci dapat dipertahankan untuk waktu yang sangat lama, terutama jika ada kegagalan jaringan antara database pada titik kritis dalam waktu. Untuk mengatasi masalah ini, banyak sistem manajemen basis data terdistribusi melonggarkan persyaratan isolasi transaksi yang ketat dan menerapkan "konsistensi akhirnya." Dalam bentuk konsistensi ini, sebagai aplikasi menulis data, setiap perubahan dicatat oleh satu server dan kemudian disebarkan ke server lain dalam sistem database terdistribusi secara asinkron. Sementara strategi ini membantu meminimalkan latensi, itu dapat menyebabkan inkonsistensi sementara dalam data. Konsistensi akhirnya sangat ideal di mana aplikasi tidak memerlukan jaminan pemesanan. Contohnya termasuk jumlah saham, suka, atau komentar non-threaded dalam sistem media sosial.

Jelaskan beban kerja analitis

Beban kerja analitis biasanya sistem read-only yang menyimpan volume besar data historis atau metrik bisnis, seperti kinerja penjualan dan tingkat persediaan. Beban kerja analitis digunakan untuk analisis data dan pengambilan keputusan. Analytics dihasilkan dengan menggabungkan fakta-fakta yang disajikan oleh data mentah ke dalam ringkasan, tren, dan jenis lain dari "informasi Bisnis."

Analytics dapat didasarkan pada snapshot data pada titik waktu tertentu, atau serangkaian snapshot. Pengambil keputusan biasanya tidak memerlukan semua rincian setiap transaksi. Mereka menginginkan gambaran yang lebih besar.

Contoh informasi analitis adalah laporan penjualan bulanan. Sebagai kepala departemen penjualan, Anda mungkin tidak perlu melihat semua transaksi harian yang terjadi (informasi transaksional), tetapi Anda pasti ingin laporan penjualan bulanan untuk mengidentifikasi tren dan membuat keputusan (informasi analitis).

Informasi transaksional, bagaimanapun, merupakan bagian integral dari informasi analitis. Jika Anda tidak memiliki catatan penjualan harian yang baik, Anda tidak dapat menyusun laporan yang berguna untuk mengidentifikasi tren. Itu sebabnya penanganan informasi transaksional yang efisien sangat penting.


Jelaskan perbedaan antara data batch dan streaming

Pengolahan data hanyalah konversi data mentah ke informasi yang bermakna melalui suatu proses. Bergantung pada bagaimana data tertelan ke dalam sistem Anda, Anda dapat memproses setiap item data saat tiba, atau menyangga data mentah dan memprosesnya dalam kelompok. Memproses data saat tiba disebut streaming. Buffering dan pengolahan data dalam kelompok disebut batch processing.

Memahami pemrosesan batch

Dalam pemrosesan batch, elemen data yang baru tiba dikumpulkan ke dalam kelompok. Seluruh kelompok kemudian diproses pada waktu yang akan lama sebagai batch. Tepat ketika setiap kelompok diproses dapat ditentukan dalam beberapa cara. Misalnya, Anda dapat memproses data berdasarkan interval waktu yang dijadwalkan (misalnya, setiap jam), atau dapat dipicu ketika sejumlah data telah tiba, atau sebagai hasil dari beberapa peristiwa lain.

Contoh pemrosesan batch adalah cara suara biasanya dihitung dalam pemilihan. Suara tidak dimasukkan ketika mereka dilemparkan, tetapi semua dimasukkan bersama-sama pada satu waktu dalam batch.

Keuntungan dari pemrosesan batch meliputi:

  • Volume data yang besar dapat diproses pada waktu yang tepat.
  • Hal ini dapat dijadwalkan untuk berjalan pada saat komputer atau sistem mungkin dinyatakan menganggur, seperti semalam, atau selama jam-jam off-peak.

Kelemahan pemrosesan batch meliputi:

  • Penundaan waktu antara menelan data dan mendapatkan hasilnya.
  • Semua data input pekerjaan batch harus siap sebelum batch dapat diproses. Ini berarti data harus diperiksa dengan hati-hati. Masalah dengan data, kesalahan, dan crash program yang terjadi selama pekerjaan batch membuat seluruh proses terhenti. Data input harus diperiksa dengan hati-hati sebelum pekerjaan dapat dijalankan lagi. Bahkan kesalahan data kecil, seperti kesalahan ketik dalam tanggal, dapat mencegah pekerjaan batch berjalan.

Contoh penggunaan pemrosesan batch yang efektif adalah koneksi ke sistem mainframe. Sejumlah besar data perlu ditransfer ke sistem analisis data dan data tidak real-time. Contoh pemrosesan batch yang tidak efektif adalah mentransfer sejumlah kecil data real-time, seperti ticker saham keuangan.

Memahami streaming dan data real-time

Dalam pemrosesan aliran, setiap bagian data baru diproses ketika tiba. Misalnya, konsumsi data secara inheren adalah proses streaming.

Streaming menangani data secara real time. Tidak seperti pemrosesan batch, tidak ada yang menunggu sampai interval pemrosesan batch berikutnya, dan data diproses sebagai potongan individu daripada diproses batch pada suatu waktu. Pemrosesan data streaming bermanfaat dalam sebagian besar skenario di mana data dinamis baru dihasilkan secara terus-menerus.

Contoh data streaming meliputi:

  • Sebuah lembaga keuangan melacak perubahan di pasar saham secara real time, menghitung nilai-berisiko, dan secara otomatis menyeimbangkan kembali portofolio berdasarkan pergerakan harga saham.
  • Sebuah perusahaan game online mengumpulkan data real-time tentang interaksi pemain-game, dan feed data ke platform game-nya. Kemudian menganalisis data secara real time, menawarkan insentif dan pengalaman dinamis untuk melibatkan para pemainnya.
  • Situs web real estat yang melacak subset data dari perangkat seluler konsumen, dan membuat rekomendasi properti real-time dari properti untuk dikunjungi berdasarkan geo-lokasi mereka.

Pemrosesan aliran sangat ideal untuk operasi kritis waktu yang memerlukan respons real-time instan. Misalnya, sistem yang memantau bangunan untuk asap dan panas perlu memicu alarm dan membuka kunci pintu untuk memungkinkan penduduk segera melarikan diri jika terjadi kebakaran.

Memahami perbedaan antara data batch dan streaming

Terlepas dari cara pemrosesan batch dan pemrosesan streaming menangani data, ada perbedaan lain:

  • Data Scope:Batch processing dapat memproses semua data dalam dataset. Pemrosesan aliran biasanya hanya memiliki akses ke data terbaru yang diterima, atau dalam jendela waktu bergulir (30 detik terakhir, misalnya).

  • Ukuran Data:Pemrosesan batch cocok untuk menangani dataset besar secara efisien. Pemrosesan aliran ditujukan untuk catatan individu atau batch mikro yang terdiri dari beberapa catatan.

  • Kinerja:Latensi untuk pemrosesan batch biasanya beberapa jam. Pemrosesan aliran biasanya terjadi segera, dengan latensi dalam urutan detik atau milidetik. Latensi adalah waktu yang dibutuhkan untuk data yang akan diterima dan diproses.

  • Analisis:Anda biasanya menggunakan pemrosesan batch untuk melakukan analisis yang kompleks. Pemrosesan aliran digunakan untuk fungsi respons sederhana, agregat, atau perhitungan seperti rolling averages.

Komentar

Postingan populer dari blog ini

Jelajahi layanan data relasional di Azure

  Perkenalan Selesai Database adalah kumpulan data. Database bisa sesederhana spreadsheet desktop, atau serumit sistem global yang memegang petabyte informasi yang sangat terstruktur. Data dapat disusun dengan berbagai cara. Pendekatan umum adalah menyimpan data dalam format tabular, dengan baris dan kolom. Anda dapat menentukan hubungan antara tabel. Database ini disebut database  relasional. Database juga dapat semi-terstruktur atau tidak terstruktur, yang terdiri dari data semi-diproses atau tidak diproses. Database ini biasanya disebut sebagai  non-relasional.  Database dikelola menggunakan sistem manajemen database (DBMS). DBMS menangani aspek fisik dari database, seperti di mana dan bagaimana disimpan, siapa yang dapat mengaksesnya, dan bagaimana memastikan bahwa itu tersedia bila diperlukan. Banyak organisasi bergantung pada informasi yang tersimpan dalam database mereka untuk membantu membuat keputusan bisnis yang penting. Di masa lalu, organisasi-organisasi ...

Mengkueri data relasional di Azure

  Pengantar Dengan Azure, Anda bisa membuat database relasional menggunakan sejumlah teknologi, termasuk Azure SQL Database, Azure Database for PostgreSQL, Azure Database for MySQL, dan Azure Database for MariaDB. Bayangkan bahwa Anda bekerja sebagai pengembang untuk jaringan supermarket besar yang bernama Contoso. Perusahaan telah membuat penyimpanan data yang akan digunakan untuk menyimpan inventaris produk. Tim pengembangan telah menggunakan database Azure SQL untuk menyimpan datanya. Mereka perlu tahu cara mengkueri dan memanipulasi data ini menggunakan SQL. Dalam modul ini, Anda akan mempelajari cara menggunakan layanan database ini untuk menyimpan dan mengambil data. Anda akan memahami cara menggunakan beberapa alat umum yang tersedia untuk sistem manajemen database ini untuk menyambungkan ke layanan database yang dijalankan di Azure. Pengantar SQL Selesai SQL adalah singkatan dari Structured Query Language. SQL digunakan untuk berkomunikasi dengan database relasional. Ini ad...

Jelaskan konsep data relasional

Perkenalan Selesai Pada tahun-tahun awal database, setiap aplikasi menyimpan data dalam struktur uniknya sendiri. Ketika pengembang ingin membangun aplikasi untuk menggunakan data itu, mereka harus tahu banyak tentang struktur data tertentu untuk menemukan data yang mereka butuhkan. Struktur data ini tidak efisien, sulit dipertahankan, dan sulit dioptimalkan untuk memberikan kinerja aplikasi yang baik. Model database relasional dirancang untuk memecahkan masalah beberapa struktur data sewenang-wenang. Model relasional menyediakan cara standar untuk mewakili dan query data yang dapat digunakan oleh aplikasi apapun. Sejak awal, pengembang mengakui bahwa kekuatan utama dari model database relasional adalah dalam penggunaan tabel, yang merupakan cara intuitif, efisien, dan fleksibel untuk menyimpan dan mengakses informasi terstruktur. Model relasional sederhana namun kuat digunakan oleh organisasi dari semua jenis dan ukuran untuk berbagai kebutuhan manajemen informasi. Database relasional...