01Sorun ve çözüm
Apache Spark çözümleri hizmetimizde önce mevcut işlerinizin nerede zaman kaybettiğini ölçüyoruz: veriyi okuma biçimi, karıştırma adımları, birleştirme sırası ve çıktı dosyalarının yapısı. Sonra işleri PySpark, Scala ya da Spark SQL ile yeniden yazıyor veya mevcut Spark kodunuzu iyileştiriyoruz. Hedef, işin hem daha kısa sürmesi hem de kümenin gereğinden büyük tutulmamasıdır.
02Kimler için
Apache Spark çözümleri hangi durumda anlam kazanır
Spark her veri işi için doğru araç değildir; aşağıdaki durumlarda ise çoğu zaman en pratik seçenek hâline gelir.
- Pandas veya SQL betikleri tek makinenin belleğine sığmayan veri setlerinde çalışamaz hâle gelen analitik ekipleri
- Hadoop üzerindeki eski MapReduce ve Hive işlerini daha bakımı kolay bir yapıya taşımak isteyen kuruluşlar
- Databricks, Amazon EMR veya Google Dataproc kullanan ama faturası ve iş süreleri sürekli artan şirketler
- Tıklama, işlem ya da sensör verisinden makine öğrenmesi için özellik tabloları üreten veri bilimi ekipleri
- Toplu ve akış işlerini aynı motor ve aynı kod tabanıyla yönetmek isteyen veri mühendisliği ekipleri
03İhtiyaçlar
Yavaş ve pahalı Spark işlerinin ardındaki nedenler
Spark kodunda yapılan küçük bir tercih, iş süresini ve kaynak tüketimini katlarca değiştirebilir.
- 01
Veri çarpıklığı
Birleştirme anahtarının birkaç değerde yoğunlaşması, işin tamamı biterken tek bir görevin dakikalarca çalışmasına neden olur. Anahtar tuzlama, yayın birleştirme ya da uyarlanabilir sorgu yürütme ayarlarıyla yük dengelenir.
- 02
Küçük dosya yığını
Her çalıştırmada binlerce küçük dosya üreten işler, sonraki okumaları yavaşlatır ve depolama katmanını zorlar. Çıktı bölümleme ve düzenli sıkıştırma işleriyle dosya boyutları makul aralığa çekilir.
- 03
Gereksiz karıştırma adımları
Erken filtrelenmeyen veri, gruplama ve birleştirme sırasında ağ üzerinden defalarca taşınır. Sorgu planı Spark arayüzünde incelenir, sütun budama ve filtre itme işlevlerinin devreye girdiği doğrulanır.
- 04
Yanlış boyutlanmış küme
Yürütücü belleği ve çekirdek sayısı işin yapısına uymazsa ya bellek taşması ya da boşta bekleyen makineler görülür. Otomatik ölçekleme ve bulut sağlayıcının indirimli, geri çağrılabilir sunucu türleri uygun işlerde maliyeti düşürür.
04Özellikler
Apache Spark çözümleri hizmeti kapsamında yapılanlar
Çalışma mevcut bir Spark ortamını iyileştirmekten sıfırdan bir işleme katmanı kurmaya kadar uzanabilir.
- 01
İş envanteri ve darboğaz analizi
Çalışan her işin süresi, okuduğu ve yazdığı veri miktarı ve kaynak tüketimi çıkarılır. İyileştirme önceliği, iş süresine ve maliyete etkisine göre sıralanır.
- 02
Toplu işlerin yeniden yazılması
Tek makinede çalışan betikler ya da eski Hive sorguları PySpark veya Spark SQL'e çevrilir. Eski ve yeni çıktılar satır sayısı ve özet değerlerle karşılaştırılarak doğruluk kanıtlanır.
- 03
Tablo biçimi ve bölümleme düzeni
Veri Parquet üzerine kurulu Delta Lake veya Apache Iceberg tablolarına taşınır. Böylece güncelleme, silme ve geçmiş sürüme dönme gibi işlemler dosya düzeyinde elle uğraşmadan yapılabilir.
- 04
Structured Streaming işleri
Anlık veri gerektiren senaryolarda aynı iş mantığı Structured Streaming ile mikro toplu işlere dönüştürülür ve kontrol noktalarıyla kaldığı yerden devam edecek biçimde kurulur.
- 05
Zamanlama ve hata yönetimi
İşler Apache Airflow gibi bir iş akışı aracıyla bağımlılık sırasına göre çalıştırılır. Başarısız adım yalnızca kendisinden itibaren yeniden çalıştırılabilir ve sorumlu ekibe bildirim gider.
05Entegrasyonlar
Spark işlerinin bağlandığı kaynaklar ve platformlar
Spark çevresindeki depolama, katalog ve zamanlama araçlarıyla birlikte tasarlandığında verimli çalışır.
- 01
Nesne depolama
Amazon S3, Azure Data Lake Storage ve Google Cloud Storage üzerindeki veri doğrudan okunur; şirket içinde ise HDFS ya da S3 uyumlu depolama kullanılabilir.
- 02
Çalışma platformları
İşler Databricks, Amazon EMR, Google Dataproc ya da Kubernetes üzerinde çalıştırılabilir. Seçim, mevcut bulut hesabınıza ve ekibinizin işletim kapasitesine göre yapılır.
- 03
İlişkisel veritabanları
PostgreSQL, SQL Server, Oracle ve MySQL'den JDBC ile paralel okuma yapılır; üretim veritabanını yormamak için okuma bölümleri ve saatleri ayarlanır.
- 04
Olay akışları
Kafka veya Kinesis gibi akış kaynaklarındaki olaylar Spark ile okunup tablo hâline getirilir ya da zenginleştirilerek başka bir konuya yazılır.
- 05
Veri katalogları
Tablolar Hive Metastore, AWS Glue Data Catalog ya da Unity Catalog gibi bir katalogda tanımlanır; analistler aynı tabloya SQL ile erişir.
06Süreç
Çalışma süreci
Adım 01
Analiz
İş akışınızı, kullanıcılarınızı ve mevcut sistemlerinizi dinleriz; kapsamı, öncelikleri ve kabul ölçütlerini yazılı hâle getiririz.
Adım 02
Tasarım
Ekran akışlarını ve veri modelini çıkarırız. Arayüzü sizinle gözden geçirip onay almadan geliştirmeye geçmeyiz.
Adım 03
Geliştirme
Kısa döngülerle çalışırız; her döngü sonunda çalışan bir sürümü test ortamında görürsünüz.
Adım 04
Test
İşlevsel testler, entegrasyon testleri ve temel güvenlik kontrolleriyle hataları yayından önce yakalarız.
Adım 05
Yayın
Sunucu, alan adı, yedekleme ve izleme ayarlarını yaparak canlıya alırız; ekibinize kısa bir kullanım eğitimi veririz.
Adım 06
Bakım
İsterseniz bakım ve destek anlaşmasıyla güncellemeleri, izlemeyi ve yeni geliştirmeleri sürdürürüz.
07Teknoloji
Spark projelerinde izlediğimiz yöntem
Her iyileştirmeyi ölçerek yapıyoruz. Değişiklik öncesinde iş süresi, okunan veri ve kaynak tüketimi kaydedilir; değişiklikten sonra aynı ölçüm tekrarlanır. Böylece hangi ayarın gerçekten fark yarattığı, hangisinin yalnızca karmaşıklık eklediği açıkça görülür.
Devamını okuDaha az göster
Spark kodunu da uygulama kodu gibi ele alıyoruz: sürüm kontrolünde tutulur, küçük örnek verilerle birim testleri yazılır ve sürekli entegrasyon hattında çalıştırılır. Küme ayarları altyapı koduyla tanımlandığı için test ve üretim ortamları arasında sürpriz fark kalmaz.
Kişisel veri içeren tablolarda kimlik alanlarını işleme başında maskeliyor ya da takma adla değiştiriyoruz. Sütun ve satır bazında erişim yetkileri katalog düzeyinde verilir; böylece analist yalnızca ihtiyaç duyduğu alanı görür.
08Çalışma modelleri
Bu hizmette çalışma modelleri
- 01
Proje bazlı
Sabit kapsam, sabit fiyat ve belirli teslim tarihi
Kapsamı belli, teslim tarihi olan işler için.
- Yazılı kapsam ve kabul ölçütleri
- Sabit fiyat ve belirli teslim tarihi
- Teslim ve kabul adımları sözleşmede
- 02
Bakım ve destek
Aylık sözleşmeli, SLA'lı bakım, destek ve geliştirme saati
Yayındaki bir sistemin sürekliliği için.
- Aylık sözleşme ve SLA
- İzleme, güncelleme ve hata düzeltme
- Aylık geliştirme saati
- 03
Danışmanlık
Saatlik veya günlük teknik danışmanlık
Karar, denetim veya yön belirleme gereken durumlar için.
- Saatlik veya günlük çalışma
- Yazılı rapor ve öneriler
- Ekibinizle birlikte çalışma
09Sık sorulan sorular
Apache Spark çözümleri hakkında sık sorulan sorular
Apache Spark çözümleri fiyatları hangi etkenlere bağlı?
İş sayısı ve karmaşıklığı, işlenen veri hacmi, yeniden yazım mı yoksa iyileştirme mi yapılacağı ve çalışma platformu belirleyicidir. Kapsamı iş envanterine göre çıkarıp yazılı bir teklif sunuyoruz; küme işletim giderleri bulut sağlayıcınızın faturasına ayrıca yansır.
Verimiz Spark gerektirecek kadar büyük mü?
Veri tek bir güçlü makinenin belleğine rahatça sığıyorsa DuckDB, Polars ya da iyi ayarlanmış bir veritabanı çoğu zaman daha sade ve ucuzdur. Spark, verinin sürekli büyüdüğü, birden çok kaynağın birleştirildiği ve işlerin paralel çalışması gerektiği durumlarda öne çıkar; bu değerlendirmeyi ilk görüşmede birlikte yaparız.
Databricks kullanmak zorunda mıyız?
Hayır. Databricks hazır yönetim katmanı sunar ama tek seçenek değildir. Amazon EMR, Google Dataproc ya da Kubernetes üzerinde açık kaynak Spark da aynı kodu çalıştırabilir; maliyet, ekip alışkanlığı ve mevcut bulut hesabınıza göre öneri yaparız.
Mevcut Hive ve MapReduce işlerimiz ne olacak?
Hive sorgularının büyük kısmı Spark SQL'e küçük değişikliklerle taşınabilir; MapReduce işleri ise genellikle yeniden yazılır. Taşıma iş iş yapılır ve her iş için eski ile yeni çıktının aynı olduğu karşılaştırmayla doğrulanır.
Spark işlerimizin bulut faturası neden bu kadar yüksek?
En sık nedenler sürekli açık kalan kümeler, işe göre büyük seçilmiş makineler, gereksiz veri taraması ve küçük dosya sorunudur. İş bazında maliyet çıkarıldığında hangi işin faturayı şişirdiği netleşir ve iyileştirme oradan başlar.
Apache Spark çözümleri firması olarak ekibimize eğitim veriyor musunuz?
Evet. Danışmanlık modelinde ekibinizle birlikte kod incelemesi yapıyor, Spark arayüzünden sorgu planı okumayı ve çarpıklık teşhisini somut işleriniz üzerinden gösteriyoruz. Amaç, iyileştirmeleri sonradan kendi ekibinizin sürdürebilmesidir.
10İlgili hizmetler