Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?

Дахин сайн уу! Өгүүллийн гарчиг нь өөрөө ярьдаг. Хичээл эхлэхийг хүлээж байна "Өгөгдлийн инженер" Өгөгдлийн инженер гэж хэн болохыг ойлгохыг танд санал болгож байна. Нийтлэлд маш их хэрэгтэй холбоосууд байдаг. Сайхан уншаарай.

Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?

Мэдээллийн инженерийн долгионыг хэрхэн барьж, таныг ангал руу чирэхийг зөвшөөрөхгүй байх энгийн гарын авлага.

Өнөө үед хүн бүр Data Scientist болохыг хүсдэг бололтой. Гэхдээ өгөгдлийн инженерчлэлийн талаар юу хэлэх вэ? Үндсэндээ энэ бол өгөгдлийн шинжээч ба өгөгдөл судлаачийн нэг төрлийн эрлийз юм; Өгөгдлийн инженер нь ихэвчлэн ажлын урсгал, дамжуулах хоолой, ETL процессыг удирдах үүрэгтэй. Эдгээр функцүүдийн ач холбогдлын улмаас энэ нь одоогоор идэвхтэй эрч хүчээ авч байгаа өөр нэг алдартай мэргэжлийн үг хэллэг юм.

Өндөр цалин, асар их эрэлт нь энэ ажлыг маш сонирхолтой болгодог зүйлийн өчүүхэн хэсэг юм! Хэрэв та баатруудын эгнээнд нэгдэхийг хүсч байвал сурч эхлэхэд хэзээ ч оройтдоггүй. Энэ нийтлэлд би анхны алхамаа хийхэд тань туслах шаардлагатай бүх мэдээллийг цуглуулсан.

Тиймээс эхэлье!

Өгөгдлийн инженерчлэл гэж юу вэ?

Үнэнийг хэлэхэд, үүнээс илүү сайн тайлбар байхгүй.

“Эрдэмтэн хүн шинэ од нээж чадна, гэхдээ тэр од үүсгэж чадахгүй. Тэр инженерээс үүнийг хийлгэхийг хүсэх ёстой."

-Гордон Линдси Глегг

Тиймээс мэдээллийн инженерийн үүрэг маш чухал юм.

Нэрнээс нь харахад өгөгдлийн инженерчлэл нь өгөгдөл, тухайлбал түүнийг хүргэх, хадгалах, боловсруулахтай холбоотой байдаг. Үүний дагуу инженерүүдийн гол ажил бол мэдээллийн найдвартай дэд бүтцийг бий болгох явдал юм. Хэрэв бид AI-ийн хэрэгцээний шатлалыг авч үзвэл мэдээллийн инженерчлэл эхний 2-3 үе шатыг эзэлдэг. цуглуулах, шилжүүлэх, хадгалах, мэдээлэл бэлтгэх.

Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?

Өгөгдлийн инженер юу хийдэг вэ?

Биг дата бий болсноор хариуцлагын цар хүрээ эрс өөрчлөгдсөн. Хэрэв өмнө нь эдгээр мэргэжилтнүүд Informatica ETL, Pentaho ETL, Talend зэрэг хэрэгслүүдийг ашиглан том хэмжээний SQL асуулга, нэрмэл өгөгдөл бичдэг байсан бол одоо мэдээллийн инженерүүдэд тавигдах шаардлага нэмэгдсэн.

Мэдээллийн инженерийн ажлын байранд нээлттэй ажлын байртай ихэнх компаниуд дараахь шаардлагыг тавьдаг.

  • SQL болон Python хэлний маш сайн мэдлэгтэй.
  • Клоуд платформ, ялангуяа Amazon Web Services дээр ажиллаж байсан туршлагатай.
  • Java/Scala хэлний мэдлэгтэй бол давуу тал болно.
  • SQL болон NoSQL мэдээллийн сангийн талаар сайн ойлголттой (өгөгдлийн загварчлал, мэдээллийн агуулах).

Эдгээр нь зөвхөн зайлшгүй шаардлагатай зүйл гэдгийг санаарай. Энэ жагсаалтаас харахад өгөгдлийн инженерүүд нь програм хангамж боловсруулах, арын хэсгийн чиглэлээр мэргэшсэн мэргэжилтнүүд гэж үзэж болно.
Жишээлбэл, хэрэв компани янз бүрийн эх сурвалжаас их хэмжээний өгөгдөл үүсгэж эхэлбэл мэдээллийн инженерийн хувьд таны даалгавар бол мэдээлэл цуглуулах, боловсруулах, хадгалах ажлыг зохион байгуулах явдал юм.

Энэ тохиолдолд ашигласан хэрэгслүүдийн жагсаалт өөр байж болох бөгөөд энэ нь бүгд энэ өгөгдлийн хэмжээ, түүнийг хүлээн авах хурд, нэг төрлийн бус байдлаас хамаарна. Ихэнх компаниуд том дататай огт харьцдаггүй тул өгөгдлийн агуулах гэж нэрлэгддэг төвлөрсөн агуулахын хувьд та SQL мэдээллийн санг (PostgreSQL, MySQL г.м.) ашиглан өгөгдлийг нийлүүлдэг жижиг багц скриптүүдийг ашиглаж болно. агуулах.

Google, Amazon, Facebook, Dropbox зэрэг мэдээллийн технологийн аварга компаниуд Python, Java эсвэл Scala хэлний мэдлэгтэй байх нь илүү өндөр шаардлага тавьдаг.

  • Том өгөгдөлтэй ажиллах туршлага: Hadoop, Spark, Kafka.
  • Алгоритм ба өгөгдлийн бүтцийн талаархи мэдлэг.
  • Түгээмэл системийн үндсийг ойлгох.
  • Tableau эсвэл ElasticSearch гэх мэт өгөгдлийн дүрслэлийг ашиглаж байсан туршлагатай бол давуу тал болно.

Өөрөөр хэлбэл, том өгөгдөл рүү, тухайлбал түүнийг өндөр ачаалалтай боловсруулахад тодорхой шилжилт гарч байна. Эдгээр компаниуд системийн алдааг тэсвэрлэх шаардлагыг нэмэгдүүлсэн.

Өгөгдлийн инженерүүд Vs. өгөгдөл судлаачид

Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?
За, энэ нь энгийн бөгөөд хөгжилтэй харьцуулалт байсан (хувийн зүйл биш), гэхдээ бодит байдал дээр энэ нь илүү төвөгтэй юм.

Нэгдүгээрт, өгөгдөл судлаач, мэдээллийн инженерийн үүрэг, ур чадварыг тодорхойлоход маш их ойлгомжгүй байдал байдгийг та мэдэх ёстой. Өөрөөр хэлбэл, амжилттай өгөгдлийн инженер болоход ямар ур чадвар шаардагдах талаар та амархан эргэлзэж болно. Мэдээжийн хэрэг, хоёр дүртэй давхцах тодорхой ур чадварууд байдаг. Гэхдээ бас эсрэг тэсрэг ур чадварууд байдаг.

Өгөгдлийн шинжлэх ухаан бол ноцтой бизнес боловч бид дадлагажигч нар өөрсдөө аналитик хийх боломжтой функциональ өгөгдлийн шинжлэх ухааны ертөнц рүү явж байна. Өгөгдлийн дамжуулах хоолой болон нэгдсэн өгөгдлийн бүтцийг идэвхжүүлэхийн тулд танд өгөгдөл судлаач биш харин мэдээллийн инженерүүд хэрэгтэй.

Өгөгдлийн инженер нь өгөгдөл судлаачаас илүү эрэлт хэрэгцээтэй байдаг уу?

- Тийм ээ, учир нь та луувантай бялуу хийхээсээ өмнө эхлээд луувангаа цуглуулж, хальсалж, нөөцлөх хэрэгтэй!

Өгөгдлийн инженер програмчлалыг ямар ч өгөгдөл судлаачаас илүү сайн ойлгодог боловч статистикийн хувьд эсрэгээрээ байдаг.

Гэхдээ өгөгдлийн инженерийн давуу тал нь:

Түүнгүйгээр өгөгдөл судлаачаас олж авсан, ямар нэгэн байдлаар үр дүнд хүргэдэг Python файл дахь аймшигтай чанарын кодоос бүрдэх загвар загварын үнэ цэнэ тэг болох хандлагатай байдаг.

Өгөгдлийн инженер байхгүй бол энэ код хэзээ ч төсөл болж чадахгүй бөгөөд бизнесийн ямар ч асуудал үр дүнтэй шийдэгдэхгүй. Дата инженер энэ бүхнийг бүтээгдэхүүн болгохыг хичээж байна.

Өгөгдлийн инженерийн мэдэх ёстой үндсэн мэдээлэл

Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?

Тиймээс, хэрэв энэ ажил таны доторх гэрлийг тодруулж, урам зоригтой байвал та үүнд суралцаж, шаардлагатай бүх ур чадварыг эзэмшиж, дата инженерийн салбарт жинхэнэ рок од болж чадна. Тийм ээ, та програмчлалын ур чадвар болон бусад техникийн мэдлэггүйгээр ч гэсэн үүнийг даван туулж чадна. Энэ нь хэцүү, гэхдээ боломжтой!

Эхний алхамууд юу вэ?

Та юу болох талаар ерөнхий ойлголттой байх ёстой.

Юуны өмнө Data Engineering гэдэг нь компьютерийн шинжлэх ухааныг хэлдэг. Тодруулбал, та үр ашигтай алгоритм, өгөгдлийн бүтцийг ойлгох ёстой. Хоёрдугаарт, өгөгдлийн инженерүүд өгөгдөлтэй ажилладаг тул өгөгдлийн сангийн зарчим, тэдгээрийн суурь бүтцийг ойлгох шаардлагатай.

Жишээлбэл, уламжлалт B-tree SQL өгөгдлийн сангууд нь B-Tree өгөгдлийн бүтэц, түүнчлэн орчин үеийн тархсан хадгалах сангууд, LSM-Tree болон хэш хүснэгтүүдийн бусад өөрчлөлтүүд дээр суурилдаг.

* Эдгээр алхмууд нь гайхалтай нийтлэл дээр үндэслэсэн болно Адиля Хаштамова. Тэгэхээр орос хэл мэддэг бол энэ зохиолчийг дэмжээд уншаарай түүний бичлэг.

1. Алгоритм ба өгөгдлийн бүтэц

Өгөгдлийн зөв бүтцийг ашиглах нь алгоритмын гүйцэтгэлийг мэдэгдэхүйц сайжруулж чадна. Бид бүгд сургуульдаа өгөгдлийн бүтэц, алгоритмын талаар суралцах ёстой, гэхдээ энэ нь ховор тохиолддог. Ямар ч тохиолдолд танилцахад хэзээ ч оройтдоггүй.
Тиймээс энд өгөгдлийн бүтэц, алгоритмыг сурах дуртай үнэгүй курсууд байна:

Томас Корманы алгоритм дээр хийсэн сонгодог бүтээлийн талаар бүү мартаарай. Алгоритмуудын танилцуулга. Энэ нь санах ойгоо сэргээх шаардлагатай үед төгс лавлагаа юм.

  • Ур чадвараа сайжруулахын тулд ашигла Leetcode.

Та мөн Youtube дээрх Карнеги Меллон их сургуулийн гайхалтай видеонуудын тусламжтайгаар мэдээллийн сангийн ертөнцөд шумбаж болно.

2. SQL сурах

Бидний амьдрал тэр чигтээ өгөгдөл. Энэ өгөгдлийг мэдээллийн сангаас гаргаж авахын тулд та түүнтэй нэг хэлээр "ярих" хэрэгтэй.

SQL (Structured Query Language) нь өгөгдлийн домайн дахь харилцааны хэл юм. Хэн ч юу гэж хэлэхээс үл хамааран SQL нь маш удаан хугацаанд амьдарсан, амьд байгаа бөгөөд амьдрах болно.

Хэрэв та удаан хугацааны туршид хөгжүүлэлт хийж байгаа бол SQL-ийн үхлийн тухай цуурхал үе үе гарч ирдгийг анзаарсан байх. Энэ хэлийг 70-аад оны эхээр боловсруулсан бөгөөд шинжээчид, хөгжүүлэгчид болон сонирхогчдын дунд маш их алдартай хэвээр байна.
SQL-ийн мэдлэггүй бол өгөгдлийн инженерчлэлд хийх зүйл байхгүй, учир нь та өгөгдөл авахын тулд асуулга үүсгэх шаардлагатай болно. Орчин үеийн бүх том мэдээллийн агуулахууд SQL-ийг дэмждэг:

  • Амазоны Redshift
  • HP Vertica
  • Oracle-ийн
  • SQL сервер

... болон бусад олон.

HDFS гэх мэт тархсан системд хадгалагдсан өгөгдлийн том давхаргад дүн шинжилгээ хийхийн тулд SQL хөдөлгүүрүүдийг зохион бүтээсэн: Apache Hive, Impala гэх мэт. Энэ нь хаашаа ч явахгүй байгааг хараарай.

SQL-г хэрхэн сурах вэ? Зүгээр л практик дээр хий.

Үүнийг хийхийн тулд би маш сайн зааварчилгааг үзэхийг зөвлөж байна, дашрамд хэлэхэд үнэгүй Mode Analytics.

  1. Дунд түвшний SQL
  2. SQL дэх өгөгдөлд нэгдэх

Эдгээр курсуудын онцлог нь та SQL асуулгыг шууд хөтөч дээрээ бичиж, ажиллуулах боломжтой интерактив орчинтой байдаг. Нөөц Орчин үеийн SQL илүүдэхгүй. Мөн та энэ мэдлэгээ ашиглаж болно Leetcode даалгавар Өгөгдлийн сангийн хэсэгт.

3. Python болон Java/Scala хэл дээр програмчлал

Та яагаад Python програмчлалын хэлийг сурах ёстой вэ гэж би аль хэдийн нийтлэлд бичсэн Python vs R. AI, ML болон Data Science-д зориулсан шилдэг хэрэгслийг сонгох. Java болон Scala-ийн тухай ярихад асар их хэмжээний өгөгдлийг хадгалах, боловсруулахад зориулсан ихэнх хэрэгслүүд эдгээр хэл дээр бичигдсэн байдаг. Жишээлбэл:

  • Апачи Кафка (Скала)
  • Hadoop, HDFS (Java)
  • Апачи оч (Скала)
  • Апачи Кассандра (Жава)
  • HBase (Java)
  • Апачи үүр (Java)

Эдгээр хэрэгслүүд хэрхэн ажилладагийг ойлгохын тулд тэдгээрийг бичсэн хэлийг мэдэх хэрэгтэй. Скалагийн функциональ арга нь зэрэгцээ өгөгдөл боловсруулах асуудлыг үр дүнтэй шийдвэрлэх боломжийг олгодог. Харамсалтай нь Python хурд, зэрэгцээ боловсруулалтаараа сайрхаж чадахгүй. Ерөнхийдөө хэд хэдэн хэл, програмчлалын парадигмын мэдлэг нь асуудлыг шийдвэрлэх арга барилын өргөн цар хүрээтэй байх болно.

Скала хэл рүү шумбахын тулд та уншиж болно Скала дээр програмчлал хэлний зохиогчоос. Твиттер бас сайн танилцуулга гарын авлагыг нийтлэв. Скала сургууль.

Python-ийн хувьд би итгэж байна Сайхан Python дунд түвшний шилдэг ном.

4. Том өгөгдөлтэй ажиллах хэрэгслүүд

Том өгөгдлийн дэлхийн хамгийн алдартай хэрэгслүүдийн жагсаалтыг энд оруулав.

  • Apache Spark
  • Apache Kafka
  • Apache Hadoop (HDFS, HBase, Hive)
  • Апачи Кассандра

Та энэ гайхалтай зүйлээс том өгөгдлийн блокуудыг бүтээх талаар илүү их мэдээллийг олж авах боломжтой интерактив орчин. Хамгийн алдартай хэрэгсэл бол Spark, Kafka юм. Тэдгээрийг судлах нь гарцаагүй бөгөөд тэд хэрхэн ажилладагийг дотроос нь ойлгохыг зөвлөж байна. Жей Крепс (Кафкагийн хамтран зохиогч) 2013 онд нэгэн гайхамшигт бүтээл хэвлүүлсэн. Бүртгэл: Бодит цагийн өгөгдлийг нэгтгэх талаар програм хангамж хөгжүүлэгч бүрийн мэдэх ёстой зүйлДашрамд дурдахад, энэ Талмудын гол санааг Апачи Кафка бүтээхэд ашигласан.

5. Үүлэн платформууд

Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?

Дор хаяж нэг үүл платформын талаархи мэдлэг нь мэдээллийн инженерийн албан тушаалд өргөдөл гаргагчдад тавигдах үндсэн шаардлагуудын жагсаалтад багтдаг. Ажил олгогчид Amazon Web Services-ийг илүүд үздэг бөгөөд Google-ийн үүлэн платформ хоёрдугаарт, Microsoft Azure эхний гуравт багтжээ.

Та Amazon EC2, AWS Lambda, Amazon S3, DynamoDB-ийн талаар сайн мэдлэгтэй байх ёстой.

6. Тархсан системүүд

Том өгөгдөлтэй ажиллах нь сүлжээгээр дамждаг бие даасан компьютеруудын кластерууд байгааг илтгэнэ. Кластер том байх тусам түүний гишүүн зангилааны бүтэлгүйтлийн магадлал өндөр байдаг. Гайхалтай өгөгдөл судлаач болохын тулд тархсан системүүдийн асуудал, одоо байгаа шийдлүүдийг ойлгох хэрэгтэй. Энэ газар нь хуучин бөгөөд төвөгтэй газар юм.

Эндрю Таненбаум энэ салбарын анхдагч гэж тооцогддог. Онолоос айдаггүй хүмүүст би түүний номыг санал болгож байна "Түгээмэл системүүд", эхлэгчдэд энэ нь хэцүү мэт санагдаж болох ч энэ нь танд ур чадвараа сайжруулахад үнэхээр тусална.

Би итгэж байна Мартин Клеппманн "Өгөгдөл их шаарддаг программуудыг зохион бүтээх" шилдэг танилцуулга ном. Дашрамд хэлэхэд Мартинд гайхалтай зүйл бий блог. Түүний ажил нь том өгөгдлийг хадгалах, боловсруулах орчин үеийн дэд бүтцийг бий болгох талаархи мэдлэгийг системчлахад тусална.
Видео үзэх дуртай хүмүүст зориулж Youtube дээр курс байдаг Тархсан компьютерийн системүүд.

7. Мэдээллийн дамжуулах хоолой

Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?

Өгөгдлийн шугам хоолой нь өгөгдлийн инженергүйгээр амьдрах боломжгүй зүйл юм.

Ихэнх тохиолдолд өгөгдлийн инженер нь өгөгдлийн дамжуулах хоолой гэж нэрлэгддэг, өөрөөр хэлбэл өгөгдлийг нэг газраас нөгөөд хүргэх процессыг бий болгодог. Эдгээр нь гадаад үйлчилгээний API руу очих эсвэл SQL асуулга хийх, өгөгдлийг нэмэгдүүлэх, төвлөрсөн дэлгүүр (өгөгдлийн агуулах) эсвэл бүтэцгүй мэдээллийн санд (өгөгдлийн нуур) оруулах захиалгат скриптүүд байж болно.

Дүгнэж хэлэхэд: мэдээллийн инженерийн үндсэн шалгах хуудас

Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?

Дүгнэж хэлэхэд дараахь зүйлийг сайн ойлгох шаардлагатай.

  • Мэдээллийн систем;
  • Програм хангамж хөгжүүлэх (Agile, DevOps, Design Techniques, SOA);
  • Түгээмэл систем ба зэрэгцээ програмчлал;
  • Өгөгдлийн сангийн үндэс - Төлөвлөлт, дизайн, ашиглалт, алдааг олж засварлах;
  • Туршилтын загвар - A/B тестүүд нь үзэл баримтлалыг батлах, найдвартай байдал, системийн гүйцэтгэлийг тодорхойлох, сайн шийдлийг хурдан гаргах найдвартай замыг боловсруулах.

Эдгээр нь өгөгдлийн инженер болоход тавигдах цөөн хэдэн шаардлагууд тул өгөгдлийн систем, мэдээллийн систем, тасралтгүй хүргэлт/байршуулах/интеграцчлал, програмчлалын хэл болон бусад компьютерийн шинжлэх ухааны сэдвүүдийг (бүх хичээлийн хүрээнд биш) сурч, ойлгоорой.

Эцэст нь хэлэхэд би хамгийн сүүлчийн боловч маш чухал зүйлийг хэлмээр байна.

Өгөгдлийн инженер болох зам нь санагдсан шиг тийм ч хялбар биш юм. Тэр уучлахгүй, урам хугарах тул та үүнд бэлэн байх ёстой. Энэ аялалын зарим мөчүүд таныг бууж өгөхөд түлхэж магадгүй. Гэхдээ энэ бол жинхэнэ ажил, суралцах үйл явц юм.

Зүгээр л анхнаасаа элсэн чихэрээр бүрхэж болохгүй. Аялал жуулчлалын гол зорилго бол аль болох ихийг сурч, шинэ сорилтод бэлэн байх явдал юм.
Энэ санааг сайн харуулсан гайхалтай зураг энд байна:

Өгөгдлийн инженер гэж хэн бэ, та яаж инженер болох вэ?

Тиймээ, ядрахаас зайлсхийж, амрахаа бүү мартаарай. Энэ нь бас маш чухал юм. Амжилт хүсье!

Нийтлэлийн талаар та юу гэж бодож байна, найзууд аа? Бид таныг урьж байна үнэгүй вэбинар, өнөөдөр 20.00 цагт болох юм. Вебинарын үеэр бид жижиг компани эсвэл гарааны бизнест хамгийн бага зардлаар хэрхэн үр дүнтэй, өргөтгөх боломжтой өгөгдөл боловсруулах системийг бий болгох талаар ярилцах болно. Дадлага болгон бид Google Cloud мэдээлэл боловсруулах хэрэгслүүдтэй танилцах болно. Баяртай!

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх