Veri mühendisleri kimdir ve nasıl olunur?

Tekrar merhaba! Makalenin başlığı kendisi için konuşuyor. Kursun başlamasını sabırsızlıkla bekliyorum Veri Mühendisi Veri mühendislerinin kim olduğunu anlamanızı öneririz. Makalede birçok yararlı bağlantı var. Mutlu okumalar.

Veri mühendisleri kimdir ve nasıl olunur?

Veri Mühendisliği dalgasını nasıl yakalayacağınıza ve onun sizi uçuruma sürüklemesine nasıl izin vermeyeceğinize dair basit bir kılavuz.

Görünüşe göre bugünlerde herkes Veri Bilimcisi olmak istiyor. Peki ya Veri Mühendisliği? Esasen bu, bir veri analisti ile veri bilimcisinin bir tür melezidir; Bir veri mühendisi genellikle iş akışlarını yönetmekten, işlem hatlarını işlemekten ve ETL süreçlerinden sorumludur.. Bu işlevlerin önemi nedeniyle, bu şu anda aktif olarak ivme kazanan bir başka popüler profesyonel jargondur.

Yüksek maaşlar ve büyük talep, bu işi son derece çekici kılan şeylerin sadece küçük bir kısmı! Kahramanların saflarına katılmak istiyorsanız öğrenmeye başlamak için asla geç değildir. Bu yazıda ilk adımlarınızı atmanıza yardımcı olacak gerekli tüm bilgileri topladım.

Yani, başlayalım!

Veri Mühendisliği Nedir?

Açıkçası bundan daha iyi bir açıklama olamaz:

“Bir bilim adamı yeni bir yıldız keşfedebilir ama onu yaratamaz. Bir mühendisten bunu kendisi için yapmasını istemesi gerekecek."

–Gordon Lindsay Glegg

Bu nedenle veri mühendisinin rolü oldukça önemlidir.

Adından da anlaşılacağı gibi veri mühendisliği verilerle, yani bu verilerin teslimi, depolanması ve işlenmesiyle ilgilidir. Buna göre mühendislerin temel görevi veriye güvenilir bir altyapı sağlamaktır. Yapay zekanın ihtiyaçlar hiyerarşisine bakarsak, veri mühendisliği ilk 2-3 aşamayı kaplıyor: toplama, taşıma ve depolama, veri hazırlama.

Veri mühendisleri kimdir ve nasıl olunur?

Bir veri mühendisi ne yapar?

Büyük verinin ortaya çıkışıyla birlikte sorumluluk kapsamı da önemli ölçüde değişti. Daha önce bu uzmanlar Informatica ETL, Pentaho ETL, Talend gibi araçları kullanarak büyük SQL sorguları yazıp verileri damıtmışken, şimdi veri mühendislerine olan gereksinimler arttı.

Veri mühendisi pozisyonu için açık pozisyonları olan çoğu şirket aşağıdaki gereksinimlere sahiptir:

  • Mükemmel SQL ve Python bilgisi.
  • Bulut platformları, özellikle Amazon Web Hizmetleri konusunda deneyim.
  • Tercihen Java/Scala bilgisi.
  • SQL ve NoSQL veritabanlarının iyi anlaşılması (veri modelleme, veri ambarı).

Unutmayın bunlar sadece temel ihtiyaçlardır. Bu listeden veri mühendislerinin yazılım geliştirme ve arka uç alanında uzman olduğu varsayılabilir.
Örneğin, bir şirket çeşitli kaynaklardan büyük miktarda veri üretmeye başlarsa, veri mühendisi olarak göreviniz bilgilerin toplanmasını, işlenmesini ve depolanmasını organize etmektir.

Bu durumda kullanılan araçların listesi farklılık gösterebilir, hepsi bu verilerin hacmine, alınma hızına ve heterojenliğine bağlıdır. Çoğu şirket büyük verilerle hiç ilgilenmez, bu nedenle merkezi bir depo, sözde veri ambarı olarak, verileri besleyen küçük bir komut dosyası seti içeren bir SQL veritabanı (PostgreSQL, MySQL, vb.) kullanabilirsiniz. depo.

Google, Amazon, Facebook veya Dropbox gibi BT devlerinin daha yüksek gereksinimleri vardır: Python, Java veya Scala bilgisi.

  • Büyük veri deneyimi: Hadoop, Spark, Kafka.
  • Algoritmalar ve veri yapıları hakkında bilgi sahibi olmak.
  • Dağıtık sistemlerin temellerini anlamak.
  • Tableau veya ElasticSearch gibi veri görselleştirme araçlarıyla ilgili deneyim bir artı olacaktır.

Yani, büyük verilere, yani onun yüksek yükler altında işlenmesine doğru açık bir geçiş var. Bu şirketlerin sistem hata toleransı gereksinimleri arttı.

Veri Mühendisleri Vs. veri bilimcileri

Veri mühendisleri kimdir ve nasıl olunur?
Tamam, bu basit ve eğlenceli bir karşılaştırmaydı (kişisel değil), ama gerçekte çok daha karmaşık.

Öncelikle, bir veri bilimcinin ve bir veri mühendisinin rollerinin ve becerilerinin tanımlanmasında pek çok belirsizlik olduğunu bilmelisiniz. Yani başarılı bir veri mühendisi olmak için hangi becerilerin gerekli olduğu konusunda kolayca kafanız karışabilir. Elbette her iki rolle de örtüşen belirli beceriler var. Ancak taban tabana zıt çok sayıda beceri de vardır.

Veri bilimi ciddi bir iştir, ancak uygulayıcıların kendi analizlerini yapabildikleri işlevsel veri bilimi dünyasına doğru ilerliyoruz. Veri hatlarını ve entegre veri yapılarını etkinleştirmek için veri bilimcilere değil, veri mühendislerine ihtiyacınız var.

Bir veri mühendisi veri bilimcisinden daha mı fazla talep görüyor?

- Evet, çünkü havuçlu kek yapmadan önce havuçları toplamanız, soymanız ve stoklamanız gerekir!

Bir veri mühendisi, programlamayı herhangi bir veri bilimcisinden daha iyi anlar, ancak istatistik söz konusu olduğunda bunun tersi doğrudur.

Ancak burada bir veri mühendisinin avantajı var:

O olmadan, çoğunlukla bir Python dosyasındaki, bir veri bilimciden alınan ve bir şekilde sonuç üreten çok kötü kalitede bir kod parçasından oluşan prototip modelin değeri sıfıra yönelir.

Veri mühendisi olmadan bu kod asla bir projeye dönüşmeyecek ve hiçbir iş sorunu etkili bir şekilde çözülmeyecektir. Veri mühendisi tüm bunları bir ürüne dönüştürmeye çalışıyor.

Bir veri mühendisinin bilmesi gereken temel bilgiler

Veri mühendisleri kimdir ve nasıl olunur?

Yani, eğer bu iş içinizdeki ışığı ortaya çıkarırsa ve hevesliyseniz, bunu öğrenebilir, gerekli tüm becerilerde uzmanlaşabilir ve veri mühendisliği alanında gerçek bir rock yıldızı olabilirsiniz. Ve evet, programlama becerileriniz veya diğer teknik bilginiz olmadan bile bunu başarabilirsiniz. Zor ama mümkün!

İlk adımlar nelerdir?

Neyin ne olduğuna dair genel bir fikriniz olmalı.

Veri Mühendisliği öncelikle bilgisayar bilimini ifade eder. Daha spesifik olarak verimli algoritmaları ve veri yapılarını anlamalısınız. İkincisi, veri mühendisleri verilerle çalıştığı için veritabanlarının ilkelerini ve bunların altında yatan yapıları anlamak gerekir.

Örneğin, geleneksel B-tree SQL veritabanları, B-Tree veri yapısının yanı sıra modern dağıtılmış depolarda LSM-Tree ve karma tablolarının diğer modifikasyonlarını temel alır.

*Bu adımlar harika bir makaleye dayanmaktadır Adilya Haştamova. Yani eğer Rusça biliyorsanız bu yazarı destekleyin ve okuyun onun gönderisi.

1. Algoritmalar ve veri yapıları

Doğru veri yapısını kullanmak bir algoritmanın performansını önemli ölçüde artırabilir. İdeal olarak hepimiz okullarımızda veri yapıları ve algoritmalar hakkında bilgi sahibi olmalıyız, ancak bu nadiren ele alınmaktadır. Her durumda, tanışmak için asla geç değildir.
İşte veri yapılarını ve algoritmaları öğrenmeye yönelik favori ücretsiz kurslarım:

Ayrıca Thomas Corman'ın algoritmalar üzerine klasik çalışmasını da unutmayın - Algoritmalara Giriş. Hafızanızı yenilemeniz gerektiğinde bu mükemmel bir referanstır.

  • Becerilerinizi geliştirmek için kullanın Leet kodu.

Ayrıca Youtube'daki Carnegie Mellon Üniversitesi'nin harika videolarıyla veritabanları dünyasına da girebilirsiniz:

2. SQL'i öğrenin

Tüm hayatımız veriden ibaret. Ve bu veriyi veri tabanından çıkarmak için onunla aynı dili “konuşmanız” gerekiyor.

SQL (Yapılandırılmış Sorgu Dili), veri alanındaki iletişim dilidir. Kim ne derse desin SQL yaşadı, yaşıyor ve çok uzun süre yaşayacak.

Uzun süredir geliştirme aşamasındaysanız, muhtemelen SQL'in yakında öleceğine dair söylentilerin periyodik olarak ortaya çıktığını fark etmişsinizdir. Dil 70'lerin başında geliştirildi ve analistler, geliştiriciler ve meraklılar arasında hala çok popüler.
SQL bilgisi olmadan veri mühendisliğinde yapacak hiçbir şey yoktur, çünkü verileri almak için kaçınılmaz olarak sorgular oluşturmanız gerekecektir. Tüm modern büyük veri ambarları SQL'i destekler:

  • Amazon Kırmızıya Kaydırma
  • HP Vertika
  • Kehanet
  • SQL Server

... Ve bircok digerleri.

HDFS gibi dağıtılmış sistemlerde depolanan geniş bir veri katmanını analiz etmek için SQL motorları icat edildi: Apache Hive, Impala, vb. Bakın, hiçbir yere gitmiyor.

SQL nasıl öğrenilir? Sadece pratikte yapın.

Bunu yapmak için, ücretsiz olan mükemmel bir eğitime göz atmanızı tavsiye ederim. Mod Analitiği.

  1. Orta düzey SQL
  2. SQL'de Verileri Birleştirme

Bu kursları özel kılan şey, doğrudan tarayıcınızda SQL sorguları yazıp çalıştırabileceğiniz etkileşimli bir ortama sahip olmalarıdır. Kaynak Modern SQL gereksiz olmayacak. Ve bu bilgiyi aşağıdakilere uygulayabilirsiniz: Leetcode görevleri Veritabanları bölümünde.

3. Python ve Java/Scala'da Programlama

Neden Python programlama dilini öğrenmelisiniz, makalede zaten yazdım Python vs R. Yapay Zeka, Makine Öğrenimi ve Veri Bilimi için En İyi Aracı Seçmek. Java ve Scala söz konusu olduğunda, büyük miktarda veriyi depolamak ve işlemek için kullanılan araçların çoğu bu dillerde yazılmıştır. Örneğin:

  • Apaçi Kafka (Scala)
  • Hadoop, HDFS (Java)
  • Apache Spark (Scala)
  • Apache Cassandra (Java)
  • HBase (Java)
  • Apache Kovanı (Java)

Bu araçların nasıl çalıştığını anlamak için yazıldıkları dilleri bilmeniz gerekir. Scala'nın fonksiyonel yaklaşımı paralel veri işleme problemlerini etkili bir şekilde çözmenize olanak sağlar. Python ne yazık ki hız ve paralel işlemeyle övünemez. Genel olarak, birden fazla dil ve programlama paradigması bilgisi, sorunların çözümüne yönelik yaklaşımların genişliği açısından iyidir.

Scala diline dalmak için okuyabilirsiniz Scala'da Programlama dilin yazarından. Twitter ayrıca iyi bir tanıtım kılavuzu yayınladı - Scala Okulu.

Python'a gelince, inanıyorum akıcı Python en iyi orta seviye kitap.

4. Büyük verilerle çalışmaya yönelik araçlar

Büyük veri dünyasındaki en popüler araçların listesi:

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

Büyük veri blokları oluşturma hakkında daha fazla bilgiyi bu muhteşem makalede bulabilirsiniz. etkileşimli ortam. En popüler araçlar Spark ve Kafka'dır. Kesinlikle çalışmaya değer, içeriden nasıl çalıştıklarını anlamanız tavsiye edilir. Jay Kreps (Kafka'nın ortak yazarı) 2013'te anıtsal bir çalışma yayınladı Günlük: Her Yazılım Geliştiricisinin Gerçek Zamanlı Veri Toplama Soyutlaması Hakkında Bilmesi GerekenlerBu arada, bu Talmud'un ana fikirleri Apaçi Kafka'nın yaratılmasında kullanıldı.

5. Bulut platformları

Veri mühendisleri kimdir ve nasıl olunur?

En az bir bulut platformu bilgisi, veri mühendisi pozisyonuna başvuran adayların temel gereksinimleri listesinde yer almaktadır. İşverenler Amazon Web Services'i tercih ederken, Google'ın bulut platformu ikinci sırada yer alırken, Microsoft Azure ilk üçte yer alıyor.

Amazon EC2, AWS Lambda, Amazon S3, DynamoDB hakkında iyi bilgiye sahip olmalısınız.

6. Dağıtılmış sistemler

Büyük verilerle çalışmak, aralarında iletişimin bir ağ üzerinden gerçekleştirildiği, bağımsız çalışan bilgisayar kümelerinin varlığı anlamına gelir. Küme ne kadar büyük olursa, üye düğümlerinin başarısız olma olasılığı da o kadar büyük olur. Harika bir veri bilimci olmak için dağıtılmış sistemlere yönelik sorunları ve mevcut çözümleri anlamanız gerekir. Bu alan eski ve karmaşıktır.

Andrew Tanenbaum bu alanda öncü olarak kabul ediliyor. Teoriden korkmayanlara kitabını tavsiye ederim "Dağıtık Sistemler"Yeni başlayanlar için göz korkutucu görünebilir, ancak becerilerinizi geliştirmenize gerçekten yardımcı olacaktır.

Inanıyorum Veri Yoğun Uygulamalar Tasarlama - Martin Kleppmann en iyi giriş kitabı. Bu arada, Martin'in harika bir Blog. Çalışmaları, büyük verileri depolamak ve işlemek için modern bir altyapı oluşturma konusundaki bilgilerin sistematik hale getirilmesine yardımcı olacak.
Video izlemeyi sevenler için Youtube'da kursu var Dağıtılmış bilgisayar sistemleri.

7. Veri hatları

Veri mühendisleri kimdir ve nasıl olunur?

Veri hatları, bir veri mühendisi olarak onsuz yaşayamayacağınız bir şeydir.

Çoğu zaman bir veri mühendisi, veri hattı adı verilen bir veri hattı oluşturur, yani verileri bir yerden başka bir yere iletmek için bir süreç yaratır. Bunlar, harici bir hizmetin API'sine giden veya bir SQL sorgusu yapan, verileri artıran ve onu merkezi bir depoya (veri ambarı) veya yapılandırılmamış bir veri deposuna (veri gölleri) koyan özel komut dosyaları olabilir.

Özetlemek gerekirse: bir veri mühendisi için temel kontrol listesi

Veri mühendisleri kimdir ve nasıl olunur?

Özetlemek gerekirse, aşağıdakilerin iyi anlaşılması gerekir:

  • Bilgi sistemi;
  • Yazılım geliştirme (Çevik, DevOps, Tasarım Teknikleri, SOA);
  • Dağıtık sistemler ve paralel programlama;
  • Veritabanı Temelleri - Planlama, Tasarım, İşletim ve Sorun Giderme;
  • Deney tasarımı - Kavramları kanıtlamak, güvenilirliği ve sistem performansını belirlemek ve iyi çözümleri hızlı bir şekilde sunmak için güvenilir yollar geliştirmek için A/B testleri.

Bunlar veri mühendisi olmanın şartlarından sadece birkaçıdır; bu nedenle veri sistemlerini, bilgi sistemlerini, sürekli teslimat/dağıtım/entegrasyon, programlama dilleri ve diğer bilgisayar bilimi konularını (tüm konu alanlarını değil) öğrenin ve anlayın.

Ve son olarak söylemek istediğim son ama çok önemli şey.

Veri Mühendisliği olmanın yolu sanıldığı kadar basit değil. Affetmez, hüsrana uğratır ve buna hazırlıklı olmalısınız. Bu yolculukta bazı anlar sizi vazgeçmeye itebilir. Ancak bu gerçek bir çalışma ve bir öğrenme sürecidir.

Sadece başından itibaren şekerle kaplamayın. Seyahat etmenin asıl amacı mümkün olduğu kadar çok şey öğrenmek ve yeni zorluklara hazır olmaktır.
İşte bu noktayı iyi gösteren harika bir resimle karşılaştım:

Veri mühendisleri kimdir ve nasıl olunur?

Ve evet, tükenmişlikten kaçınmayı ve dinlenmeyi unutmayın. Bu da çok önemlidir. İyi şanlar!

Yazı hakkında ne düşünüyorsunuz arkadaşlar? Sizi davet ediyoruz ücretsiz web semineriBugün saat 20.00'de gerçekleşecek. Web semineri sırasında, küçük bir şirket veya startup için minimum maliyetle etkili ve ölçeklenebilir bir veri işleme sisteminin nasıl oluşturulacağını tartışacağız. Uygulama olarak Google Cloud veri işleme araçlarını tanıyacağız. Görüşürüz!

Kaynak: habr.com

Yorum ekle