Banyak orang menggunakan istilah data besar dalam cara yang agak komersial , sebagai sarana untuk menunjukkan bahwa kumpulan data besar terlibat dalam perhitungan, dan karenanya solusi potensial harus memiliki kinerja yang baik. Tentu saja, big data selalu membawa istilah yang terkait, seperti skalabilitas dan efisiensi, tetapi apa sebenarnya yang mendefinisikan masalah sebagai masalah big data ?
Apakah perhitungan harus dikaitkan dengan beberapa set tujuan tertentu, seperti penambangan data / pencarian informasi, atau dapatkah suatu algoritma untuk masalah grafik umum diberi label data besar jika dataset cukup besar ? Juga, bagaimana besar adalah cukup besar (jika hal ini memungkinkan untuk mendefinisikan)?
Jawaban:
Bagi saya (berasal dari latar belakang basis data relasional), "Big Data" terutama bukan tentang ukuran data (yang merupakan sebagian besar dari jawaban yang lain sejauh ini).
"Big Data" dan "Bad Data" sangat terkait. Database Relasional membutuhkan 'data murni'. Jika data ada di database, itu akurat, bersih, dan 100% andal. Basis Data Relasional membutuhkan "Data Hebat" dan sejumlah besar waktu, uang, dan akuntabilitas digunakan untuk memastikan data disiapkan dengan baik sebelum memuatnya ke dalam basis data. Jika data ada di database, itu adalah 'Injil', dan itu mendefinisikan pemahaman sistem tentang kenyataan.
"Big Data" menangani masalah ini dari arah lain. Data tidak didefinisikan dengan baik, banyak di antaranya mungkin tidak akurat, dan banyak di antaranya mungkin hilang. Struktur dan tata letak data linier dibandingkan dengan relasional.
Big Data harus memiliki volume yang cukup sehingga jumlah data yang buruk, atau data yang hilang menjadi tidak signifikan secara statistik. Ketika kesalahan dalam data Anda cukup umum untuk membatalkan satu sama lain, ketika data yang hilang secara proporsional cukup kecil untuk diabaikan dan ketika persyaratan akses data Anda dan algoritma berfungsi bahkan dengan data yang tidak lengkap dan tidak akurat, maka Anda memiliki "Data Besar" .
"Big Data" sebenarnya bukan tentang volume, ini tentang karakteristik data.
sumber
Seperti yang Anda catat dengan benar, hari ini "data besar" adalah sesuatu yang semua orang ingin katakan mereka miliki, yang memerlukan kelonggaran tertentu dalam cara orang mendefinisikan istilah. Namun secara umum, saya katakan Anda pasti berurusan dengan data besar jika skalanya sedemikian rupa sehingga tidak layak lagi untuk mengelola dengan teknologi yang lebih tradisional seperti RDBMS, setidaknya tanpa melengkapi mereka dengan teknologi data besar seperti Hadoop.
Seberapa besar data Anda sebenarnya untuk itu menjadi kasus masih bisa diperdebatkan. Berikut adalah posting blog (agak provokatif) yang mengklaim bahwa itu tidak benar-benar terjadi untuk kurang dari 5 TB data. (Untuk lebih jelasnya, ini tidak mengklaim "Kurang dari 5 TB bukan data besar", tetapi hanya "Kurang dari 5 TB tidak cukup besar sehingga Anda memerlukan Hadoop".)
Tetapi bahkan pada dataset yang lebih kecil, teknologi data besar seperti Hadoop dapat memiliki keuntungan lain, termasuk cocok untuk operasi batch, bermain dengan baik dengan data yang tidak terstruktur (serta data yang strukturnya tidak diketahui sebelumnya atau dapat berubah), skalabilitas horizontal ( melakukan penskalaan dengan menambahkan lebih banyak node alih-alih menambah server yang ada), dan (sebagai salah satu komentator pada catatan posting terkait di atas) kemampuan untuk mengintegrasikan pemrosesan data Anda dengan set data eksternal (pikirkan pengurangan peta di mana mapper melakukan panggilan ke server lain). Teknologi lain yang terkait dengan data besar, seperti basis data NoSql, menekankan kinerja yang cepat dan ketersediaan yang konsisten ketika berhadapan dengan set data yang besar, juga mampu menangani data semi-tidak terstruktur dan untuk skala secara horizontal.
Tentu saja, RDBMS tradisional memiliki kelebihannya sendiri termasuk jaminan ACID (Atomicity, Consistency, Isolasi, Durability) dan kinerja yang lebih baik untuk operasi tertentu, serta menjadi lebih terstandarisasi, lebih matang, dan (untuk banyak pengguna) lebih akrab. Jadi, bahkan untuk data "besar" yang tak terbantahkan, mungkin masuk akal untuk memuat setidaknya sebagian data Anda ke dalam database SQL tradisional dan menggunakannya bersamaan dengan teknologi data besar.
Jadi, definisi yang lebih murah hati adalah bahwa Anda memiliki data besar selama itu cukup besar sehingga teknologi data besar memberikan nilai tambah bagi Anda. Tetapi seperti yang Anda lihat, itu tidak hanya bergantung pada ukuran data Anda, tetapi juga pada bagaimana Anda ingin bekerja dengannya dan persyaratan seperti apa yang Anda miliki dalam hal fleksibilitas, konsistensi, dan kinerja. Bagaimana Anda menggunakan data Anda lebih relevan dengan pertanyaan dari apa yang Anda menggunakannya untuk (misalnya data mining). Yang mengatakan, menggunakan seperti penambangan data dan pembelajaran mesin lebih mungkin untuk menghasilkan hasil yang berguna jika Anda memiliki set data yang cukup besar untuk bekerja dengannya.
sumber
Total jumlah data di dunia: 2,8 zetabytes pada 2012, diperkirakan mencapai 8 zetabytes pada 2015 ( sumber ) dan dengan waktu penggandaan 40 bulan. Tidak bisa lebih besar dari itu :)
Sebagai contoh dari satu organisasi besar, Facebook menarik 500 terabyte per hari, ke dalam 100 petabyte warehouse, dan menjalankan 70k query per hari di tahun 2012 ( sumber ) Gudang mereka saat ini adalah> 300 petabytes.
Data besar mungkin adalah sesuatu yang merupakan sebagian kecil dari jumlah Facebook (1/100 mungkin ya, 1/10000 mungkin tidak: itu spektrum bukan angka tunggal).
Selain ukuran, beberapa fitur yang menjadikannya "besar" adalah:
itu dianalisis secara aktif, bukan hanya disimpan (kutipan "Jika Anda tidak mengambil keuntungan dari data besar, maka Anda tidak memiliki data besar, Anda hanya memiliki setumpuk data" Jay Parikh @ Facebook)
membangun dan menjalankan data warehouse adalah proyek infrastruktur utama
itu tumbuh pada tingkat yang signifikan
tidak terstruktur atau memiliki struktur tidak teratur
Definisi Gartner: "Data besar adalah volume tinggi, kecepatan tinggi, dan / atau berbagai aset informasi tinggi yang memerlukan bentuk pemrosesan baru" (The 3Vs) Jadi mereka juga berpikir "besar" tidak sepenuhnya tentang ukuran dataset, tetapi juga tentang kecepatan dan struktur dan jenis alat yang dibutuhkan.
sumber
Bagi saya Big Data terutama tentang alat (setelah semua, di situlah itu dimulai); dataset "besar" adalah salah satu yang terlalu besar untuk ditangani dengan alat konvensional - khususnya, cukup besar untuk menuntut penyimpanan dan pemrosesan pada kluster daripada mesin tunggal. Ini mengesampingkan RDBMS konvensional, dan menuntut teknik baru untuk diproses; khususnya, berbagai kerangka kerja seperti Hadoop membuatnya mudah untuk mendistribusikan perhitungan pada sebuah cluster, dengan biaya membatasi bentuk perhitungan ini. Saya akan referensi kedua untuk http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html; Teknik Big Data adalah pilihan terakhir untuk dataset yang terlalu besar untuk ditangani dengan cara lain. Saya akan mengatakan bahwa dataset apa pun untuk tujuan apa pun dapat memenuhi syarat jika itu cukup besar - meskipun jika bentuk masalahnya sedemikian sehingga alat "big data" yang ada tidak sesuai, maka mungkin akan lebih baik untuk membuat yang baru nama.
Tentu saja ada beberapa tumpang tindih; ketika saya (secara singkat) bekerja pada last.fm, kami bekerja pada dataset 50TB yang sama menggunakan Hadoop dan juga dalam database SQL pada server yang cukup konyol (saya ingat itu memiliki RAM 1TB, dan ini beberapa tahun yang lalu). Yang dalam arti berarti keduanya adalah dan bukan data besar, tergantung pada pekerjaan yang sedang Anda kerjakan. Tapi saya pikir itu karakterisasi yang akurat; orang-orang yang bekerja pada pekerjaan Hadoop merasa bermanfaat untuk pergi ke konferensi dan situs web Big Data, sedangkan orang-orang yang bekerja pada pekerjaan SQL tidak.
sumber
Data menjadi "besar" ketika komputer komoditas tunggal tidak dapat lagi menangani jumlah data yang Anda miliki. Ini menunjukkan titik di mana Anda harus mulai berpikir tentang membangun superkomputer atau menggunakan cluster untuk memproses data Anda.
sumber
Big Data didefinisikan oleh volume data, itu benar, tetapi tidak hanya. Kekhususan data besar adalah bahwa Anda perlu untuk menyimpan banyak dari berbagai dan kadang-kadang tidak terstruktur barang semua kali dan dari ton sensor , biasanya selama bertahun-tahun atau dekade .
Selain itu Anda membutuhkan sesuatu yang dapat diukur, sehingga Anda tidak perlu setengah tahun untuk menemukan data kembali.
Jadi, inilah Big Data, di mana metode tradisional tidak akan berfungsi lagi. SQL tidak dapat diskalakan. Dan SQL bekerja dengan data yang sangat terstruktur dan tertaut (dengan semua kunci primer dan kunci asing, innerjoin, permintaan yang diisyaratkan ...).
Pada dasarnya, karena penyimpanan menjadi lebih murah dan lebih murah dan data menjadi semakin berharga, manajer besar meminta insinyur untuk mencatat semuanya. Tambahkan banyak sekali sensor baru dengan semua perangkat seluler, jejaring sosial, yang disematkan ... dll. Jadi karena metode klasik tidak akan berfungsi, mereka harus menemukan teknologi baru (menyimpan semuanya dalam file, dalam format json, dengan indeks besar, apa yang kita sebut noSQL).
Jadi Big Data mungkin sangat besar tetapi bisa tidak begitu besar tetapi kompleks tidak terstruktur atau berbagai data yang harus disimpan dengan cepat dan di-jalankan dalam format mentah. Kami fokus dan menyimpan pada awalnya, dan kemudian kami melihat bagaimana menghubungkan semuanya.
sumber
Saya akan membagikan seperti apa Big Data dalam genomik, khususnya perakitan de-novo.
Ketika kami mengurutkan genom Anda (misalnya: mendeteksi gen baru), kami mengambil miliaran bacaan pendek generasi berikutnya. Lihatlah gambar di bawah ini, tempat kami mencoba mengumpulkan beberapa bacaan.
Ini terlihat sederhana? Tetapi bagaimana jika Anda memiliki miliar bacaan? Bagaimana jika pembacaan itu mengandung kesalahan urutan? Bagaimana jika RAM Anda tidak memiliki cukup memori untuk menyimpan bacaan? Bagaimana dengan daerah DNA berulang, seperti Elemen Alu yang sangat umum ?
Perakitan De-novo dilakukan dengan membuat grafik De-Bruijn :
Grafik adalah struktur data yang ditambang dengan cerdas untuk mewakili pembacaan yang tumpang tindih. Ini tidak sempurna tetapi lebih baik daripada menghasilkan semua kemungkinan tumpang tindih dan menyimpannya dalam sebuah array.
Proses perakitan dapat memakan waktu berhari-hari untuk diselesaikan, karena ada cukup banyak jalur yang harus dilalui oleh perakit dan runtuh.
Dalam genomik, Anda memiliki data besar ketika:
https://en.wikipedia.org/wiki/De_Bruijn_graph
sumber
Ada hal khusus untuk membuat grafik algoritma, Anda pertanyaan asli yang membuat kemudian istimewa, yaitu tentang kemampuannya untuk mempartisi data pada dasarnya.
Untuk beberapa hal, seperti menyortir angka pada array, tidak terlalu sulit untuk mempartisi masalah pada struktur data menjadi potongan-potongan disjungtif yang lebih kecil, misalnya di sini: Paralel di tempat menggabungkan semacam
Jadi, sementara 10GB angka untuk disortir mungkin merupakan masalah yang dapat didekati dengan sangat baik pada PC normal (Anda dapat melakukannya melalui pemrograman dinamis dan memiliki prediktabilitas yang sangat baik tentang aliran program), bekerja dengan struktur data grafik 10GB sudah dapat menantang.
Ada sejumlah kerangka kerja khusus seperti GraphX menggunakan metode dan paradigma komputasi khusus untuk agak menghindari tantangan yang melekat pada grafik.
Jadi untuk menjawab pertanyaan Anda secara singkat: Seperti yang disebutkan sebelumnya oleh orang lain, ketika data Anda tidak masuk ke memori utama pada PC normal tetapi Anda membutuhkan semua itu untuk menjawab masalah Anda, adalah petunjuk yang baik bahwa data Anda sudah agak besar. Namun pelabelan yang tepat tergantung saya pikir sedikit pada struktur data dan pertanyaan yang diajukan.
sumber
Saya pikir data besar dimulai pada titik di mana ukuran mencegah Anda melakukan apa yang Anda inginkan. Dalam sebagian besar skenario, ada batas waktu berjalan yang dianggap layak. Dalam beberapa kasus itu adalah satu jam, dalam beberapa kasus mungkin beberapa minggu. Selama data tidak cukup besar sehingga hanya algoritma O (n) yang dapat berjalan dalam kerangka waktu yang layak, Anda tidak mencapai data besar.
Saya suka definisi ini karena agnostik terhadap volume, tingkat teknologi, dan algoritma tertentu. Ini bukan agnostik untuk sumber daya sehingga mahasiswa pascasarjana akan mencapai titik big data jauh sebelum Google.
Untuk dapat mengukur seberapa besar data, saya ingin mempertimbangkan waktu yang dibutuhkan untuk mencadangkannya. Sejak kemajuan teknologi, volume yang dianggap besar beberapa tahun yang lalu sekarang moderat. Waktu cadangan meningkat, seiring teknologi meningkat, sama seperti waktu berjalan dari algoritma pembelajaran. Saya merasa lebih masuk akal untuk berbicara tentang dataset yang dibutuhkan X jam untuk membuat cadangan dan bukan dataset Y byte.
PS.
Penting untuk dicatat bahwa meskipun Anda telah mencapai titik data besar dan Anda tidak dapat menjalankan algoritme kompleksitas lebih dari O (n) dengan cara yang lurus ke depan, ada banyak hal yang dapat Anda lakukan agar tetap mendapat manfaat dari algoritma tersebut.
Misalnya, pemilihan fitur dapat mengurangi jumlah fitur yang bergantung pada banyak algoritma waktu berjalan. Dalam banyak distribusi ekor panjang yang berfokus pada beberapa item di kepala mungkin bermanfaat. Anda dapat menggunakan sampel dan menjalankannya dengan algoritma yang lebih lambat.
sumber
Data adalah "Data Besar" jika volumenya sedemikian sehingga lebih murah untuk menganalisisnya pada dua atau lebih komputer komoditas, daripada pada satu komputer kelas atas.
Ini pada dasarnya bagaimana sistem file "BigFiles" Google berasal. Page dan Brin tidak mampu membeli server Sun yang mewah untuk menyimpan dan mencari indeks web mereka, sehingga menghubungkan beberapa komputer komoditas
sumber
Saya cenderung setuju dengan apa yang sudah dikatakan oleh @Dan Levin. Pada akhirnya karena kami ingin menarik wawasan yang berguna dari data daripada hanya menyimpannya, itu adalah kemampuan mempelajari algoritma / sistem yang harus menentukan apa yang disebut "Big data". Saat sistem ML berevolusi, Big Data hari ini tidak lagi menjadi Big Data besok.
Salah satu cara mendefinisikan Big data adalah:
Dengan asumsi definisi ini, selama memori ditempati oleh satu baris individual (semua variabel untuk satu titik data) tidak melebihi RAM mesin, kita harus berada dalam data Non-besar rezim .
Catatan: Vowpal Wabbit (sejauh ini sistem ML tercepat saat ini) dapat belajar pada kumpulan data apa pun asalkan baris individual (titik data) adalah <RAM (katakanlah 4GB). Jumlah baris bukan batasan karena menggunakan SGD pada banyak core. Berbicara dari pengalaman, Anda dapat melatih model dengan fitur 10k dan baris 10MN pada laptop dalam sehari.
sumber
"Data besar" secara harfiah hanya banyak data. Meskipun ini lebih merupakan istilah pemasaran daripada apa pun, implikasinya biasanya adalah Anda memiliki begitu banyak data sehingga Anda tidak dapat menganalisis semua data sekaligus karena jumlah memori (RAM) yang diperlukan untuk menyimpan data dalam memori untuk memproses dan menganalisisnya lebih besar dari jumlah memori yang tersedia.
Ini berarti bahwa analisis biasanya harus dilakukan pada segmen data acak, yang memungkinkan model dibangun untuk dibandingkan dengan bagian lain dari data.
sumber