python - 对爬虫抓取的数据进行分析该用MySQL还是mogodb?
PHP中文网
PHP中文网 2017-04-18 10:01:31
0
7
694
PHP中文网
PHP中文网

认证高级PHP讲师

membalas semua(7)
小葫芦

Betulkan ejaan, ia sepatutnya MongoDB.
Setiap pangkalan data mempunyai kelebihan dan kekurangannya sendiri, dan situasi berkenaan juga berbeza. Memandangkan saya berada di pihak MongoDB, dan seseorang menyebut MySQL dan HDFS di atas, saya akan menganalisis kelebihan MongoDB berbanding MySQL dan HDFS dalam analisis data. Penanya mungkin ingin melihat sama ada kelebihan ini adalah yang anda mahukan, dan kemudian membuat keputusan berdasarkan situasi sebenar projek anda.
MySQL ialah RDBMS yang telah lama wujud, dengan ciri biasa RDBMS dan sokongan lengkap untuk ACID. Teknologinya telah melalui tempoh pemendakan dan ujian aplikasi yang panjang, dan sudah berada di peringkat aplikasi yang agak stabil. Kelebihan utama RDBMS berbanding NoSQL dalam aplikasi praktikal ialah transaksi yang kukuh. Walau bagaimanapun, dalam aplikasi OLAP, urus niaga yang kukuh tidak banyak digunakan, tetapi ia menghalang sokongan yang diedarkan. Di bawah premis pembangunan penuh, pengembangan mendatar akhirnya akan menjadi hambatan utama dalam pilihan MySQL anda. Di samping itu, untuk aplikasi seperti perangkak, data tidak berstruktur biasanya dirangkak, yang mempunyai had besar dalam storan dan pertanyaan model hubungan. Tetapi terdapat juga kemungkinan bahawa tapak web yang anda minati adalah semua jenis laman web yang sama, dan anda hanya berminat dengan kandungan tertentu pada halaman web, supaya ia boleh disusun menjadi data berstruktur, jadi MySQL masih cekap dalam hal ini. Namun begitu, dengan pembangunan aplikasi, fleksibiliti storan data tetap akan dikorbankan pada masa hadapan. Oleh itu, untuk aplikasi seperti crawler, masalah utama MySQL ialah model data tidak cukup fleksibel dan tidak boleh (atau sukar untuk) berkembang secara mendatar.
Mengenai dua masalah utama di atas, HDFS sebenarnya boleh menanganinya. Oleh itu, HDFS mempunyai kelebihan berbanding MySQL dalam aplikasi seperti crawler. Begitu juga, MongoDB juga menyelesaikan kedua-dua masalah ini dengan baik. Jadi apakah kelebihan MongoDB berbanding HDFS? Perkara yang sangat penting datang daripada fakta bahawa MongoDB boleh mewujudkan indeks sekunder pada mana-mana medan dalam dokumen seperti pangkalan data hubungan, supaya kelebihan prestasi yang dibawa oleh indeks dapat dimaksimumkan semasa proses analisis. Selain itu, HDFS menyediakan lebih seperti sistem fail, manakala MongoDB menyediakan teknologi pangkalan data yang fleksibel Operasi seperti pengedaran geografi dan pengarkiban dokumen tamat tempoh boleh dilaksanakan dengan mudah pada MongoDB.
Dari perspektif ekosistem, alatan persisian HDFS mestilah lebih kaya, lagipun, di manakah sejarah pembangunan. MongoDB pada masa ini menyokong terutamanya:

  • BI Connector: MongoDB menyediakan antara muka PostgreSQL atau MySQL kepada dunia luar untuk menggunakan alatan BI sedia ada

  • Penyambung Spark: MongoDB menyambung dengan Spark untuk pengiraan

Berbalik kepada soalan anda, secara adil kecekapannya tidak begitu besar pada tahap satu juta hingga sepuluh juta Tidak kira pangkalan data mana yang digunakan, tidak akan ada perbezaan kualitatif dalam prestasi jika ia digunakan dengan betul. Mengenai isu ketersediaan, ketersediaan tinggi MongoDB boleh mencapai pemulihan ralat peringkat kedua. MySQL juga mempunyai penyelesaian yang sepadan, tetapi operasi dan penyelenggaraan mungkin lebih rumit. Tidak banyak perbezaan antara syarikat dari segi keselamatan.

Ty80

MySQL akan menjadi sangat gementar apabila memproses sejumlah besar data Sebaliknya, MongoDB seharusnya lebih baik melalui kluster.

Malah, anda tidak memerlukan pangkalan data sama sekali Ini mungkin menjadi halangan IO untuk perangkak.

Anda boleh mencuba HDFS dengan Hadoop.

巴扎黑

Anda harus memilih Hadoop sebagai platform pemprosesan Dalam kes ini, storan data asas biasanya lebih baik untuk menggunakan gabungan .mangodb+hadoop MySQL untuk pemantauan masa nyata, seperti rentetan semasa siaran langsung Gala Festival Musim Bunga. mongodb menyokong Pertanyaan data peringkat milisaat, analisis masa nyata. Hadoop menulis sekali dan mengambilnya berkali-kali Jika digabungkan dengan MySQL, ia lebih sesuai untuk projek anda. Keselamatan sebenarnya lebih kurang sama. Tidak mengapa jika tembok api kunci selamat Lagipun, pangkalan data anda diasingkan. Jadi saya cadangkan anda memilih MySQL.

洪涛

Kami kini akan menulis perangkak untuk menangkap sejumlah besar data (diramalkan ia mungkin mencapai susunan 2 juta hingga 20 juta rekod kemudian)

Jika anda hanya mempunyai sedikit data ini, MySQL atau MongoDB akan berfungsi Tetapi secara relatifnya, MongoDB akan menjadi lebih fleksibel.

Peter_Zhu

Jumlah data antara 200w dan 2000w adalah agak kecil Anda boleh mempertimbangkan mana satu daripada dua yang lebih biasa kepada anda dan gunakan yang itu. Tetapi pada asasnya, jika pangkalan data mencapai puluhan juta tahap, akan ada masalah prestasi pertanyaan, jadi jika data terus berkembang, anda boleh mempertimbangkan untuk menggunakan mongodb. Lagipun, adalah lebih mudah untuk membina gugusan mongodb sharded daripada gugusan mysql. Dan ia lebih fleksibel untuk dikendalikan.

Peter_Zhu
  1. Tidak perlu menggunakan hadoop untuk volum data 200-2000w, melainkan pasukan anda biasa dengan tindanan teknologi hadoop;

  2. Dari perspektif prestasi, tahap data ini boleh digunakan oleh kedua-dua MySQL dan mongoDB Kuncinya bergantung pada sama ada data anda berstruktur atau tidak berstruktur Secara relatifnya, mongo lebih fleksibel

Peter_Zhu

Kebetulan syarikat tempat saya bekerja telah melakukan sesuatu dalam bidang ini, dan saya bertanggungjawab ke atasnya untuk rujukan.
Apa yang saya lakukan terutamanya di sini ialah pemprosesan dan pengarkiban log, membuat statistik panas dan sejuk pada log akses yang dijana setiap hari, menjana pelbagai laporan data, dll. Malah, perangkak adalah serupa pada akhirnya.
Saya mula-mula menganggap MYSQL, tetapi prestasi satu jadual MYSQL yang melebihi puluhan juta adalah lemah, jadi saya memilih untuk menggunakan mongodb pada masa itu.
Malah, perkara yang anda lakukan adalah sangat mudah Anda hanya menggunakan Python untuk menangkap log pelayan harian secara berkala, dan kemudian menggunakan perpustakaan panda untuk membina data ke dalam struktur data yang anda mahukan , hanya agregatnya Akhirnya, hasil data harian dibuang ke mongodb.
Syarikat pada masa ini mempunyai kira-kira 8KW data mongodb Kecekapan mendapatkan data masih boleh diterima.
Selain merekodkan data ke dalam mongodb, kami juga menulis API yang tenang menggunakan kelalang untuk secara khusus memanggil keputusan statistik data untuk sistem operasi Bahagian operasi juga akan membuat jadual pada MYSQL untuk mengumpul statistik daripada mongodb kami sekali lagi dikira ke dalam jumlah data dan diletakkan dalam MYSQL, supaya tidak perlu memanggil mongodb untuk melakukan pengiraan pengagregatan berulang setiap kali data diambil daripada API.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan