Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?

Yana bir bor salom! Maqolaning sarlavhasi o'zi uchun gapiradi. Kurs boshlanishini kutish bilan Ma'lumotlar muhandisi Ma'lumotlar muhandislari kimligini tushunishingizni tavsiya qilamiz. Maqolada juda ko'p foydali havolalar mavjud. Baxtli o'qish.

Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?

Data Engineering to'lqinini qanday tutish va u sizni tubsizlikka sudrab ketishiga yo'l qo'ymaslik bo'yicha oddiy qo'llanma.

Hozirgi kunda hamma Data Scientist bo'lishni xohlayotganga o'xshaydi. Ammo Data Engineering haqida nima deyish mumkin? Aslida, bu ma'lumotlar tahlilchisi va ma'lumot olimining o'ziga xos gibrididir; Ma'lumotlar muhandisi odatda ish oqimlarini boshqarish, quvurlarni qayta ishlash va ETL jarayonlarini boshqarish uchun javobgardir. Ushbu funktsiyalarning ahamiyati tufayli, bu hozirda faol ravishda kuchayib borayotgan yana bir mashhur professional jargondir.

Yuqori ish haqi va katta talab - bu ishni juda jozibali qiladigan narsaning kichik bir qismi! Agar siz qahramonlar safiga qo'shilishni istasangiz, o'rganishni boshlash hech qachon kech emas. Ushbu postda men birinchi qadamlaringizni qo'yishingizga yordam beradigan barcha kerakli ma'lumotlarni to'pladim.

Shunday qilib, boshlaylik!

Data Engineering nima?

Rostini aytsam, bundan yaxshiroq tushuntirish yo'q:

β€œOlim yangi yulduzni kashf qilishi mumkin, lekin uni yarata olmaydi. U buni o'zi uchun muhandisdan so'rashi kerak Β».

- Gordon Lindsi Glegg

Shunday qilib, ma'lumotlar muhandisining roli juda katta.

Nomidan ko'rinib turibdiki, ma'lumotlar muhandisligi ma'lumotlar, ya'ni ularni etkazib berish, saqlash va qayta ishlash bilan bog'liq. Shunga ko'ra, muhandislarning asosiy vazifasi ma'lumotlar uchun ishonchli infratuzilmani ta'minlashdir. Agar AI ehtiyojlar ierarxiyasini ko'rib chiqsak, ma'lumotlar muhandisligi dastlabki 2-3 bosqichni egallaydi: yig'ish, ko'chirish va saqlash, ma'lumotlarni tayyorlash.

Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?

Ma'lumotlar muhandisi nima qiladi?

Katta ma'lumotlarning paydo bo'lishi bilan mas'uliyat doirasi keskin o'zgardi. Agar ilgari ushbu mutaxassislar Informatica ETL, Pentaho ETL, Talend kabi vositalar yordamida katta SQL so'rovlari va distillangan ma'lumotlarni yozgan bo'lsa, endi ma'lumotlar muhandislariga talablar oshdi.

Ma'lumotlar muhandisi lavozimiga ochiq bo'sh ish o'rinlari bo'lgan aksariyat kompaniyalar quyidagi talablarga ega:

  • SQL va Python tillarini mukammal bilish.
  • Bulutli platformalar, xususan Amazon Web Services bilan ishlash tajribasi.
  • Java/Scala tilini bilish afzalroq.
  • SQL va NoSQL ma'lumotlar bazalarini yaxshi tushunish (ma'lumotlarni modellashtirish, ma'lumotlarni saqlash).

Yodda tuting, bu faqat asosiy narsalar. Ushbu ro'yxatdan ma'lumotlar muhandislari dasturiy ta'minotni ishlab chiqish va backend sohasidagi mutaxassislar deb taxmin qilish mumkin.
Misol uchun, agar kompaniya turli manbalardan katta hajmdagi ma'lumotlarni ishlab chiqarishni boshlasa, ma'lumotlar muhandisi sifatida sizning vazifangiz ma'lumotlarni yig'ish, uni qayta ishlash va saqlashni tashkil qilishdir.

Bu holda ishlatiladigan asboblar ro'yxati farq qilishi mumkin, barchasi ushbu ma'lumotlarning hajmiga, uni olish tezligiga va heterojenligiga bog'liq. Aksariyat kompaniyalar katta ma'lumotlar bilan umuman shug'ullanmaydilar, shuning uchun ma'lumotlar ombori deb ataladigan markazlashtirilgan ombor sifatida siz SQL ma'lumotlar bazasidan (PostgreSQL, MySQL va boshqalar) foydalanishingiz mumkin, bu ma'lumotlarni o'z ichiga oladi. ombor.

Google, Amazon, Facebook yoki Dropbox kabi IT gigantlari yuqori talablarga ega: Python, Java yoki Scala tilini bilish.

  • Katta ma'lumotlar bilan ishlash tajribasi: Hadoop, Spark, Kafka.
  • Algoritmlar va ma'lumotlar tuzilmalarini bilish.
  • Tarqalgan tizimlar asoslarini tushunish.
  • Tableau yoki ElasticSearch kabi ma'lumotlarni vizualizatsiya qilish vositalari bilan ishlash tajribasi ortiqcha bo'ladi.

Ya'ni, katta ma'lumotlarga, ya'ni uni yuqori yuklarda qayta ishlashga aniq siljish bor. Ushbu kompaniyalar tizim xatolariga chidamlilik talablarini oshirdilar.

Ma'lumotlar muhandislari va boshqalar. ma'lumotlar olimlari

Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?
Yaxshi, bu oddiy va kulgili taqqoslash edi (hech narsa shaxsiy emas), lekin aslida bu ancha murakkabroq.

Birinchidan, ma'lumot olimi va ma'lumotlar muhandisining rollari va ko'nikmalarini belgilashda juda ko'p noaniqliklar mavjudligini bilishingiz kerak. Ya'ni, muvaffaqiyatli ma'lumotlar muhandisi bo'lish uchun qanday ko'nikmalar kerakligi haqida osongina chalkashib ketishingiz mumkin. Albatta, ikkala rol bilan bir-biriga mos keladigan ma'lum qobiliyatlar mavjud. Ammo bir qator diametral qarama-qarshi ko'nikmalar ham mavjud.

Ma'lumotlar fani jiddiy biznesdir, ammo biz amaliyotchilar o'zlarining tahlillarini amalga oshirishlari mumkin bo'lgan funktsional ma'lumotlar dunyosi tomon ketmoqdamiz. Ma'lumotlar quvurlari va integratsiyalashgan ma'lumotlar tuzilmalarini yoqish uchun sizga ma'lumot olimi emas, balki ma'lumotlar muhandislari kerak.

Ma'lumotlar muhandisi ma'lumotlar olimiga qaraganda ko'proq talabga egami?

- Ha, chunki sabzi kekini tayyorlashdan oldin, avvalo, sabzi yig'ib, qobig'ini tozalash va saqlash kerak!

Ma'lumotlar muhandisi dasturlashni har qanday ma'lumot olimiga qaraganda yaxshiroq tushunadi, ammo statistikaga kelganda, buning aksi bo'ladi.

Ammo ma'lumotlar muhandisining afzalligi:

Usiz, ko'pincha ma'lumot olimidan olingan va qandaydir tarzda natija beradigan Python faylidagi dahshatli sifat kodidan iborat bo'lgan prototip modelining qiymati nolga teng bo'ladi.

Ma'lumotlar muhandisi bo'lmasa, bu kod hech qachon loyihaga aylanmaydi va hech qanday biznes muammosi samarali hal etilmaydi. Ma'lumotlar muhandisi bularning barchasini mahsulotga aylantirishga harakat qilmoqda.

Ma'lumotlar muhandisi bilishi kerak bo'lgan asosiy ma'lumotlar

Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?

Shunday qilib, agar bu ish ichingizdagi nurni ochsa va siz g'ayratli bo'lsangiz - uni o'rganishingiz mumkin, siz barcha kerakli ko'nikmalarni egallab olishingiz va ma'lumotlar muhandisligi sohasida haqiqiy rok yulduziga aylanishingiz mumkin. Va, ha, siz dasturlash ko'nikmalari yoki boshqa texnik bilimlarsiz ham buni amalga oshirishingiz mumkin. Bu qiyin, lekin mumkin!

Birinchi qadamlar qanday?

Siz nima haqida umumiy tasavvurga ega bo'lishingiz kerak.

Birinchidan, ma'lumotlar muhandisligi kompyuter fanini anglatadi. Aniqroq aytganda, siz samarali algoritmlar va ma'lumotlar tuzilmalarini tushunishingiz kerak. Ikkinchidan, ma'lumotlar muhandislari ma'lumotlar bilan ishlaganligi sababli, ma'lumotlar bazalari tamoyillarini va ularga asoslangan tuzilmalarni tushunish kerak.

Masalan, an'anaviy B-tree SQL ma'lumotlar bazalari B-Tree ma'lumotlar strukturasiga, shuningdek, zamonaviy taqsimlangan omborlarda, LSM-Tree va xesh-jadvallarning boshqa modifikatsiyalariga asoslangan.

*Ushbu qadamlar ajoyib maqolaga asoslangan Adilya Xashtamova. Shunday ekan, agar siz rus tilini bilsangiz, ushbu muallifni qo'llab-quvvatlang va o'qing uning posti.

1. Algoritmlar va ma'lumotlar tuzilmalari

To'g'ri ma'lumotlar tuzilmasidan foydalanish algoritm ishlashini sezilarli darajada yaxshilashi mumkin. Ideal holda, biz hammamiz maktablarimizda ma'lumotlar tuzilmalari va algoritmlarini o'rganishimiz kerak, ammo bu kamdan-kam hollarda yoritiladi. Har holda, tanishish uchun hech qachon kech emas.
Shunday qilib, ma'lumotlar tuzilmalari va algoritmlarni o'rganish uchun mening sevimli bepul kurslarim:

Bundan tashqari, Tomas Kormanning algoritmlar bo'yicha klassik ishi haqida unutmang - Algoritmlarga kirish. Xotirangizni yangilashingiz kerak bo'lganda, bu mukammal ma'lumotnoma.

  • O'z mahoratingizni oshirish uchun foydalaning Leetcode.

Youtube-da Karnegi Mellon universitetining ajoyib videolari bilan ma'lumotlar bazalari dunyosiga sho'ng'ishingiz mumkin:

2. SQL tilini o'rganing

Bizning butun hayotimiz ma'lumotlardan iborat. Va ma'lumotlar bazasidan ushbu ma'lumotlarni olish uchun siz u bilan bir xil tilda "gapirish" kerak.

SQL (Structured Query Language) ma'lumotlar domenidagi aloqa tilidir. Kim nima deyishidan qat'iy nazar, SQL yashagan, tirik va juda uzoq vaqt yashaydi.

Agar siz uzoq vaqt davomida rivojlanishda bo'lsangiz, SQLning yaqin orada o'limi haqidagi mish-mishlar vaqti-vaqti bilan paydo bo'lishini payqagan bo'lsangiz kerak. Til 70-yillarning boshlarida ishlab chiqilgan va hali ham tahlilchilar, ishlab chiquvchilar va oddiy ishqibozlar orasida juda mashhur.
SQL-ni bilmasangiz, ma'lumotlar muhandisligida hech narsa qilish mumkin emas, chunki siz muqarrar ravishda ma'lumotlarni olish uchun so'rovlar yaratishingiz kerak bo'ladi. Barcha zamonaviy katta ma'lumotlar omborlari SQL-ni qo'llab-quvvatlaydi:

  • Amazon RedShift
  • HP Vertica
  • Oracle
  • SQL Server

... va boshqalar.

HDFS kabi taqsimlangan tizimlarda saqlanadigan ma'lumotlarning katta qatlamini tahlil qilish uchun SQL dvigatellari ixtiro qilindi: Apache Hive, Impala va boshqalar. Qarang, u hech qaerga ketmaydi.

SQL tilini qanday o'rganish mumkin? Buni faqat amalda qiling.

Buning uchun men, aytmoqchi, bepul bo'lgan ajoyib o'quv qo'llanmasini ko'rib chiqishni tavsiya qilaman Mode Analytics.

  1. O'rta darajadagi SQL
  2. SQL-da ma'lumotlarni birlashtirish

Ushbu kurslarni o'ziga xos qiladigan narsa shundaki, ularda SQL so'rovlarini to'g'ridan-to'g'ri brauzeringizda yozishingiz va ishga tushirishingiz mumkin bo'lgan interaktiv muhit mavjud. Manba Zamonaviy SQL ortiqcha bo'lmaydi. Va siz ushbu bilimlarni qo'llashingiz mumkin Leetcode vazifalari Ma'lumotlar bazalari bo'limida.

3. Python va Java/Scala tillarida dasturlash

Nima uchun Python dasturlash tilini o'rganishingiz kerak, men allaqachon maqolada yozganman Python va R. AI, ML va Data Science uchun eng yaxshi vositani tanlash. Java va Scala haqida gap ketganda, katta hajmdagi ma'lumotlarni saqlash va qayta ishlash vositalarining aksariyati shu tillarda yozilgan. Masalan:

  • Apache Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Kassandra (Java)
  • HBase (Java)
  • Apache uyasi (Java)

Ushbu vositalar qanday ishlashini tushunish uchun siz ular yozilgan tillarni bilishingiz kerak. Scala-ning funktsional yondashuvi ma'lumotlarni parallel qayta ishlash muammolarini samarali hal qilish imkonini beradi. Python, afsuski, tezlik va parallel ishlov berish bilan maqtana olmaydi. Umuman olganda, bir nechta tillarni va dasturlash paradigmalarini bilish muammolarni hal qilishda yondashuvlar kengligi uchun yaxshi.

Scala tiliga sho'ng'ish uchun siz o'qishingiz mumkin Scala da dasturlash til muallifidan. Twitter shuningdek, yaxshi kirish qo'llanmasini nashr etdi - Scala maktabi.

Pythonga kelsak, men ishonaman Ravon Python O'rta darajadagi eng yaxshi kitob.

4. Katta ma'lumotlar bilan ishlash vositalari

Bu erda katta ma'lumotlar dunyosidagi eng mashhur vositalar ro'yxati:

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

Katta ma'lumotlar bloklarini yaratish haqida ko'proq ma'lumotni ushbu ajoyib kitobda topishingiz mumkin interaktiv muhit. Eng mashhur vositalar - Spark va Kafka. Ular, albatta, o'rganishga arziydi, ular ichkaridan qanday ishlashini tushunish tavsiya etiladi. Jey Kreps (Kafka hammuallifi) 2013 yilda monumental asarini nashr etdi. Jurnal: Har bir dasturiy ta'minot ishlab chiqaruvchisi real vaqt rejimida ma'lumotlarni yig'ish haqida bilishi kerak bo'lgan narsalarAytgancha, ushbu Talmudning asosiy g'oyalari Apache Kafkani yaratish uchun ishlatilgan.

5. Bulutli platformalar

Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?

Kamida bitta bulutli platformani bilish ma'lumotlar muhandisi lavozimiga da'vogarlar uchun asosiy talablar ro'yxatiga kiradi. Ish beruvchilar Amazon veb-xizmatlarini afzal ko'radilar, Google bulutli platformasi ikkinchi o'rinda, Microsoft Azure esa kuchli uchlikni yakunlaydi.

Siz Amazon EC2, AWS Lambda, Amazon S3, DynamoDB haqida yaxshi bilimga ega bo'lishingiz kerak.

6. Taqsimlangan tizimlar

Katta ma'lumotlar bilan ishlash mustaqil ishlaydigan kompyuterlar klasterlarining mavjudligini anglatadi, ular orasidagi aloqa tarmoq orqali amalga oshiriladi. Klaster qanchalik katta bo'lsa, uning a'zosi tugunlarining ishdan chiqishi ehtimoli shunchalik yuqori bo'ladi. Ajoyib ma'lumotlar olimi bo'lish uchun siz taqsimlangan tizimlar uchun muammolarni va mavjud echimlarni tushunishingiz kerak. Bu hudud eski va murakkab.

Endryu Tanenbaum bu sohada kashshof hisoblanadi. Nazariyadan qo'rqmaydiganlar uchun men uning kitobini tavsiya qilaman "Tarqatilgan tizimlar", bu yangi boshlanuvchilar uchun qo'rqinchli bo'lib tuyulishi mumkin, ammo bu sizning mahoratingizni oshirishga yordam beradi.

Men hisoblayman Martin Kleppmann tomonidan ma'lumot talab qiladigan ilovalarni loyihalash eng yaxshi kirish kitobi. Aytgancha, Martinning ajoyibligi bor blog. Uning ishi katta ma'lumotlarni saqlash va qayta ishlash uchun zamonaviy infratuzilmani qurish haqidagi bilimlarni tizimlashtirishga yordam beradi.
Video tomosha qilishni yaxshi ko'radiganlar uchun Youtube-da kurs mavjud Tarqalgan kompyuter tizimlari.

7. Ma'lumotlar quvurlari

Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?

Ma'lumotlar quvurlari - bu ma'lumotlar muhandisisiz yashay olmaydigan narsa.

Ko'pincha ma'lumotlar muhandisi ma'lumotlar quvuri deb ataladigan narsani quradi, ya'ni u ma'lumotlarni bir joydan ikkinchisiga etkazish jarayonini yaratadi. Bular tashqi xizmatning API-ga o'tadigan yoki SQL so'rovini amalga oshiradigan, ma'lumotlarni kengaytiradigan va uni markazlashtirilgan do'konga (ma'lumotlar ombori) yoki tuzilmagan ma'lumotlar do'koniga (ma'lumotlar ko'llari) joylashtiradigan maxsus skriptlar bo'lishi mumkin.

Xulosa qilish uchun: ma'lumotlar muhandisi uchun asosiy nazorat ro'yxati

Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?

Xulosa qilib aytganda, quyidagilarni yaxshi tushunish kerak:

  • Axborot tizimlari;
  • Dasturiy ta'minotni ishlab chiqish (Agile, DevOps, Design Techniques, SOA);
  • Taqsimlangan tizimlar va parallel dasturlash;
  • Ma'lumotlar bazasi asoslari - rejalashtirish, loyihalash, foydalanish va nosozliklarni bartaraf etish;
  • Tajribalarni loyihalash - A/B testlari tushunchalarni isbotlash, ishonchlilik, tizim ish faoliyatini aniqlash va yaxshi yechimlarni tezda yetkazib berish uchun ishonchli yoβ€˜llarni ishlab chiqish.

Bular ma'lumotlar muhandisi bo'lish uchun talablardan bir nechtasi, shuning uchun ma'lumotlar tizimlari, axborot tizimlari, uzluksiz yetkazib berish/tarqatish/integratsiya, dasturlash tillari va kompyuter fanining boshqa mavzularini (barcha fan sohalari emas) o'rganing va tushuning.

Va nihoyat, oxirgi, lekin juda muhim narsani aytmoqchiman.

Ma'lumotlar muhandisligi bo'lish yo'li ko'rinadigan darajada oddiy emas. U kechirmaydi, hafsalasi pir bo'ladi va siz bunga tayyor bo'lishingiz kerak. Ushbu sayohatdagi ba'zi daqiqalar sizni taslim bo'lishga undashi mumkin. Ammo bu haqiqiy ish va o'rganish jarayoni.

Faqat boshidan shakar bo'lmang. Sayohat qilishning butun maqsadi iloji boricha ko'proq o'rganish va yangi qiyinchiliklarga tayyor bo'lishdir.
Mana men ko'rgan ajoyib rasm bu fikrni yaxshi ko'rsatadi:

Ma'lumotlar muhandislari kimlar va siz qanday qilib shunday bo'lasiz?

Va ha, charchash va dam olishni oldini olishni unutmang. Bu ham juda muhim. Omad!

Maqola haqida qanday fikrdasiz, do'stlar? ga taklif qilamiz bepul vebinar, bugun soat 20.00 da bo'lib o'tadi. Vebinar davomida biz kichik kompaniya yoki startap uchun minimal xarajat bilan qanday qilib samarali va kengaytiriladigan ma'lumotlarni qayta ishlash tizimini yaratishni muhokama qilamiz. Amaliyot sifatida biz Google Cloud ma'lumotlarini qayta ishlash vositalari bilan tanishamiz. Ko'rishguncha!

Manba: www.habr.com

a Izoh qo'shish