Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?

Hello lagi! Tajuk artikel bercakap untuk dirinya sendiri. Dalam jangkaan permulaan kursus Jurutera Data Kami mencadangkan anda memahami siapa jurutera data. Terdapat banyak pautan berguna dalam artikel itu. Selamat membaca.

Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?

Panduan ringkas tentang cara menangkap gelombang Kejuruteraan Data dan tidak membiarkannya menyeret anda ke dalam jurang.

Nampaknya semua orang mahu menjadi seorang Saintis Data hari ini. Tetapi bagaimana pula dengan Kejuruteraan Data? Pada asasnya, ini adalah sejenis hibrid penganalisis data dan saintis data; Seorang jurutera data biasanya bertanggungjawab untuk mengurus aliran kerja, memproses saluran paip dan proses ETL. Disebabkan oleh kepentingan fungsi ini, ini merupakan satu lagi jargon profesional popular yang sedang mendapat momentum secara aktif.

Gaji tinggi dan permintaan yang besar hanyalah sebahagian kecil daripada apa yang menjadikan pekerjaan ini sangat menarik! Jika anda ingin menyertai barisan wira, masih belum terlambat untuk mula belajar. Dalam siaran ini, saya telah mengumpulkan semua maklumat yang diperlukan untuk membantu anda mengambil langkah pertama anda.

Oleh itu, mari kita mulakan!

Apakah Kejuruteraan Data?

Secara jujur, tidak ada penjelasan yang lebih baik daripada ini:

"Seorang saintis boleh menemui bintang baru, tetapi dia tidak boleh menciptanya. Dia perlu meminta seorang jurutera untuk melakukannya untuknya."

–Gordon Lindsay Glegg

Oleh itu, peranan seorang jurutera data agak penting.

Seperti namanya, kejuruteraan data berkenaan dengan data, iaitu penghantaran, penyimpanan dan pemprosesannya. Sehubungan itu, tugas utama jurutera adalah untuk menyediakan infrastruktur yang boleh dipercayai untuk data. Jika kita melihat hierarki keperluan AI, kejuruteraan data menduduki 2-3 peringkat pertama: pengumpulan, pergerakan dan penyimpanan, penyediaan data.

Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?

Apakah yang dilakukan oleh seorang jurutera data?

Dengan kemunculan data besar, skop tanggungjawab telah berubah secara mendadak. Jika sebelum ini pakar ini menulis pertanyaan SQL yang besar dan data suling menggunakan alat seperti Informatica ETL, Pentaho ETL, Talend, kini keperluan untuk jurutera data telah meningkat.

Kebanyakan syarikat yang mempunyai kekosongan jawatan kosong untuk jawatan jurutera data mempunyai keperluan berikut:

  • Pengetahuan yang sangat baik tentang SQL dan Python.
  • Pengalaman dengan platform awan, terutamanya Perkhidmatan Web Amazon.
  • Pengetahuan tentang Java/Scala diutamakan.
  • Pemahaman yang baik tentang pangkalan data SQL dan NoSQL (pemodelan data, pergudangan data).

Perlu diingat, ini hanya perkara penting. Daripada senarai ini, boleh diandaikan bahawa jurutera data adalah pakar dalam bidang pembangunan perisian dan bahagian belakang.
Sebagai contoh, jika syarikat mula menjana sejumlah besar data daripada pelbagai sumber, tugas anda sebagai jurutera data adalah untuk mengatur pengumpulan maklumat, pemprosesan dan penyimpanannya.

Senarai alat yang digunakan dalam kes ini mungkin berbeza, semuanya bergantung pada jumlah data ini, kelajuan penerimaannya dan heterogeniti. Kebanyakan syarikat tidak berurusan dengan data besar sama sekali, jadi sebagai repositori berpusat, yang dipanggil gudang data, anda boleh menggunakan pangkalan data SQL (PostgreSQL, MySQL, dll.) dengan set kecil skrip yang memasukkan data ke dalam gudang itu.

Gergasi IT seperti Google, Amazon, Facebook atau Dropbox mempunyai keperluan yang lebih tinggi: pengetahuan tentang Python, Java atau Scala.

  • Pengalaman dengan data besar: Hadoop, Spark, Kafka.
  • Pengetahuan tentang algoritma dan struktur data.
  • Memahami asas sistem teragih.
  • Pengalaman dengan alat visualisasi data seperti Tableau atau ElasticSearch akan menjadi kelebihan.

Iaitu, terdapat peralihan yang jelas ke arah data besar, iaitu dalam pemprosesannya di bawah beban yang tinggi. Syarikat-syarikat ini telah meningkatkan keperluan untuk toleransi kerosakan sistem.

Jurutera Data Vs. saintis data

Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?
Okay, itu perbandingan yang mudah dan lucu (tiada yang peribadi), tetapi sebenarnya ia lebih rumit.

Pertama, anda harus tahu bahawa terdapat banyak kekaburan dalam penyempadanan peranan dan kemahiran seorang saintis data dan seorang jurutera data. Iaitu, anda boleh dengan mudah keliru tentang kemahiran yang diperlukan untuk menjadi seorang jurutera data yang berjaya. Sudah tentu, terdapat kemahiran tertentu yang bertindih dengan kedua-dua peranan. Tetapi terdapat juga beberapa kemahiran yang bertentangan secara diametrik.

Sains data adalah perniagaan yang serius, tetapi kami sedang menuju ke dunia sains data berfungsi di mana pengamal boleh melakukan analitik mereka sendiri. Untuk mendayakan saluran paip data dan struktur data bersepadu, anda memerlukan jurutera data, bukan saintis data.

Adakah seorang jurutera data lebih mendapat permintaan daripada seorang saintis data?

- Ya, kerana sebelum anda boleh membuat kek lobak merah, anda perlu terlebih dahulu mengumpul, mengupas dan menyimpan lobak merah!

Seorang jurutera data memahami pengaturcaraan lebih baik daripada mana-mana saintis data, tetapi apabila ia datang kepada statistik, perkara sebaliknya adalah benar.

Tetapi inilah kelebihan seorang jurutera data:

Tanpa dia, nilai model prototaip, selalunya terdiri daripada sekeping kod kualiti yang mengerikan dalam fail Python, yang diperoleh daripada saintis data dan entah bagaimana menghasilkan keputusan, cenderung kepada sifar.

Tanpa jurutera data, kod ini tidak akan menjadi projek dan tiada masalah perniagaan akan diselesaikan dengan berkesan. Jurutera data cuba mengubah semua ini menjadi produk.

Maklumat asas yang perlu diketahui oleh seorang jurutera data

Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?

Jadi, jika kerja ini menyerlahkan anda dan anda bersemangat - anda boleh mempelajarinya, anda boleh menguasai semua kemahiran yang diperlukan dan menjadi bintang rock sebenar dalam bidang kejuruteraan data. Dan, ya, anda boleh melakukannya walaupun tanpa kemahiran pengaturcaraan atau pengetahuan teknikal lain. Ia sukar, tetapi mungkin!

Apakah langkah pertama?

Anda sepatutnya mempunyai idea umum tentang apa itu.

Pertama sekali, Kejuruteraan Data merujuk kepada sains komputer. Lebih khusus lagi, anda mesti memahami algoritma dan struktur data yang cekap. Kedua, kerana jurutera data bekerja dengan data, adalah perlu untuk memahami prinsip pangkalan data dan struktur yang mendasarinya.

Sebagai contoh, pangkalan data SQL B-tree konvensional adalah berdasarkan struktur data B-Tree, serta, dalam repositori teragih moden, LSM-Tree dan pengubahsuaian lain jadual cincang.

*Langkah-langkah ini adalah berdasarkan artikel yang hebat Adilya Khashtamova. Jadi, jika anda tahu bahasa Rusia, sokong pengarang ini dan baca jawatannya.

1. Algoritma dan struktur data

Menggunakan struktur data yang betul boleh meningkatkan prestasi algoritma dengan ketara. Sebaik-baiknya, kita semua harus belajar tentang struktur data dan algoritma di sekolah kita, tetapi perkara ini jarang sekali dibincangkan. Walau apa pun, masih belum terlambat untuk berkenalan.
Jadi berikut ialah kursus percuma kegemaran saya untuk mempelajari struktur data dan algoritma:

Selain itu, jangan lupa tentang kerja klasik Thomas Corman tentang algoritma - Pengenalan kepada Algoritma. Ini adalah rujukan yang sempurna apabila anda perlu menyegarkan ingatan anda.

  • Untuk meningkatkan kemahiran anda, gunakan Kod let.

Anda juga boleh menyelami dunia pangkalan data dengan video menakjubkan dari Carnegie Mellon University di Youtube:

2. Belajar SQL

Seluruh hidup kita adalah data. Dan untuk mengekstrak data ini daripada pangkalan data, anda perlu "bercakap" dalam bahasa yang sama dengannya.

SQL (Bahasa Pertanyaan Berstruktur) ialah bahasa komunikasi dalam domain data. Terlepas dari apa yang orang katakan, SQL telah hidup, masih hidup, dan akan hidup untuk waktu yang sangat lama.

Jika anda telah lama dalam pembangunan, anda mungkin perasan bahawa khabar angin tentang kematian SQL yang akan berlaku muncul secara berkala. Bahasa ini dibangunkan pada awal 70-an dan masih sangat popular di kalangan penganalisis, pembangun dan peminat semata-mata.
Tanpa pengetahuan tentang SQL tiada apa yang perlu dilakukan dalam kejuruteraan data kerana anda pasti perlu membuat pertanyaan untuk mendapatkan data. Semua gudang data besar moden menyokong SQL:

  • Pergeseran Merah Amazon
  • HP Vertica
  • Oracle
  • SQL Server

... dan lain-lain lagi.

Untuk menganalisis lapisan besar data yang disimpan dalam sistem teragih seperti HDFS, enjin SQL dicipta: Apache Hive, Impala, dll. Lihat, ia tidak akan ke mana-mana.

Bagaimana untuk belajar SQL? Lakukan sahaja dalam amalan.

Untuk melakukan ini, saya akan mengesyorkan menyemak tutorial yang sangat baik, yang, dengan cara itu, adalah percuma, daripada Analitis Mod.

  1. SQL pertengahan
  2. Menyertai Data dalam SQL

Apa yang menjadikan kursus ini istimewa ialah ia mempunyai persekitaran interaktif di mana anda boleh menulis dan menjalankan pertanyaan SQL terus dalam penyemak imbas anda. Sumber SQL moden tidak akan berlebihan. Dan anda boleh menggunakan pengetahuan ini untuk Tugas letcode dalam bahagian Pangkalan Data.

3. Pengaturcaraan dalam Python dan Java/Scala

Mengapa anda perlu mempelajari bahasa pengaturcaraan Python, saya telah menulis dalam artikel itu Python vs R. Memilih Alat Terbaik untuk AI, ML dan Sains Data. Apabila bercakap tentang Java dan Scala, kebanyakan alat untuk menyimpan dan memproses sejumlah besar data ditulis dalam bahasa ini. Sebagai contoh:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Jawa)
  • HBase (Jawa)
  • Apache Hive (Jawa)

Untuk memahami cara alat ini berfungsi, anda perlu mengetahui bahasa di mana ia ditulis. Pendekatan berfungsi Scala membolehkan anda menyelesaikan masalah pemprosesan data selari dengan berkesan. Python, malangnya, tidak boleh membanggakan kelajuan dan pemprosesan selari. Secara umum, pengetahuan tentang beberapa bahasa dan paradigma pengaturcaraan adalah baik untuk keluasan pendekatan untuk menyelesaikan masalah.

Untuk menyelami bahasa Scala, anda boleh membaca Pengaturcaraan dalam Scala daripada pengarang bahasa. Twitter juga menerbitkan panduan pengenalan yang baik - Sekolah Scala.

Bagi Python, saya percaya Python yang fasih buku peringkat pertengahan terbaik.

4. Alat untuk bekerja dengan data besar

Berikut ialah senarai alat yang paling popular di dunia data besar:

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Apache Cassandra

Anda boleh mendapatkan lebih banyak maklumat tentang membina blok data yang besar dalam menakjubkan ini persekitaran interaktif. Alat yang paling popular ialah Spark dan Kafka. Mereka pasti bernilai belajar, adalah dinasihatkan untuk memahami bagaimana mereka bekerja dari dalam. Jay Kreps (pengarang bersama Kafka) menerbitkan karya monumental pada tahun 2013 Log: Perkara Yang Setiap Pembangun Perisian Patut Tahu Mengenai Abstraksi Pengagregatan Data Masa NyataBy the way, idea utama dari Talmud ini digunakan untuk mencipta Apache Kafka.

5. Platform awan

Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?

Pengetahuan tentang sekurang-kurangnya satu platform awan terdapat dalam senarai keperluan asas untuk pemohon untuk jawatan jurutera data. Majikan lebih suka Perkhidmatan Web Amazon, dengan platform awan Google di tempat kedua dan Microsoft Azure melengkapkan tiga teratas.

Anda mesti mempunyai pengetahuan yang baik tentang Amazon EC2, AWS Lambda, Amazon S3, DynamoDB.

6. Sistem teragih

Bekerja dengan data besar membayangkan kehadiran kelompok komputer yang beroperasi secara bebas, komunikasi antaranya dijalankan melalui rangkaian. Lebih besar kluster, lebih besar kebarangkalian kegagalan nod ahlinya. Untuk menjadi seorang saintis data yang hebat, anda perlu memahami masalah dan penyelesaian sedia ada untuk sistem teragih. Kawasan ini lama dan kompleks.

Andrew Tanenbaum dianggap sebagai perintis dalam bidang ini. Bagi mereka yang tidak takut dengan teori, saya mengesyorkan bukunya "Sistem Teragih", ia mungkin kelihatan menakutkan untuk pemula, tetapi ia benar-benar akan membantu anda mengasah kemahiran anda.

saya percaya Merekabentuk Aplikasi Intensif Data oleh Martin Kleppmann buku pengenalan terbaik. By the way, Martin mempunyai yang indah blog. Kerja beliau akan membantu mensistematikkan pengetahuan tentang membina infrastruktur moden untuk menyimpan dan memproses data besar.
Bagi yang suka menonton video, ada kursus di Youtube Sistem komputer teragih.

7. Saluran paip data

Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?

Saluran paip data ialah sesuatu yang anda tidak boleh hidup tanpa sebagai jurutera data.

Selalunya, seorang jurutera data membina saluran paip data yang dipanggil, iaitu, dia mencipta proses untuk menyampaikan data dari satu tempat ke tempat lain. Ini boleh menjadi skrip tersuai yang pergi ke API perkhidmatan luaran atau membuat pertanyaan SQL, menambah data dan memasukkannya ke dalam stor berpusat (gudang data) atau stor data tidak berstruktur (tasik data).

Untuk meringkaskan: senarai semak asas untuk jurutera data

Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?

Untuk meringkaskan, pemahaman yang baik tentang perkara berikut diperlukan:

  • Sistem maklumat;
  • Pembangunan perisian (Agile, DevOps, Teknik Reka Bentuk, SOA);
  • Sistem teragih dan pengaturcaraan selari;
  • Asas Pangkalan Data - Perancangan, Reka Bentuk, Operasi dan Penyelesaian Masalah;
  • Reka bentuk eksperimen - Ujian A/B untuk membuktikan konsep, menentukan kebolehpercayaan, prestasi sistem dan membangunkan laluan yang boleh dipercayai untuk menyampaikan penyelesaian yang baik dengan cepat.

Ini hanyalah sebahagian daripada keperluan untuk menjadi seorang jurutera data, jadi pelajari dan fahami sistem data, sistem maklumat, penyampaian/pengerahan/integrasi berterusan, bahasa pengaturcaraan dan topik sains komputer yang lain (bukan semua bidang subjek).

Dan akhirnya, perkara terakhir tetapi sangat penting yang saya ingin katakan.

Laluan untuk menjadi Kejuruteraan Data tidak semudah yang disangka. Dia tidak memaafkan, dia mengecewakan, dan anda mesti bersedia untuk ini. Beberapa saat dalam perjalanan ini mungkin mendorong anda untuk berputus asa. Tetapi ini adalah kerja sebenar dan proses pembelajaran.

Cuma jangan salutkan gula dari awal. Inti pengembaraan adalah untuk belajar sebanyak mungkin dan bersedia untuk cabaran baharu.
Berikut ialah gambar hebat yang saya temui yang menggambarkan perkara ini dengan baik:

Siapakah jurutera data, dan bagaimana anda menjadi seorang jurutera?

Dan ya, ingat untuk mengelakkan keletihan dan berehat. Ini juga sangat penting. Semoga berjaya!

Apa pendapat anda tentang artikel itu, kawan-kawan? Kami menjemput anda untuk webinar percuma, yang akan berlangsung hari ini pada jam 20.00. Semasa webinar, kami akan membincangkan cara membina sistem pemprosesan data yang berkesan dan berskala untuk syarikat kecil atau permulaan pada kos yang minimum. Sebagai amalan, kami akan membiasakan diri dengan alatan pemprosesan data Google Cloud. jumpa lagi!

Sumber: www.habr.com

Tambah komen