İçeriğe geç
Teklif al

Hizmet · Bulut, DevOps ve veri

Apache Spark çözümleri

Veri büyüdükçe önce tek sunucuda çalışan Python betikleri bellek hatası vermeye başlar, ardından gece çalışan rapor işleri sabah mesaisine sarkar. Ekip sunucuya daha fazla bellek ekleyerek bir süre idare eder, fakat sınır er ya da geç gelir. Spark bu noktada işi birçok makineye bölerek çözüm sunar; ancak kötü yazılmış bir Spark işi tek sunucudaki betikten daha yavaş ve çok daha pahalı olabilir.

Kategori
Bulut, DevOps ve veri
Çalışma modeli
Proje bazlı · Bakım ve destek · Danışmanlık
Hizmet bölgesi
Türkiye geneli, uzaktan ve yerinde

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.

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

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.

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.

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.

Çalışma süreci

  1. 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.

  2. 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.

  3. 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.

  4. Adım 04

    Test

    İşlevsel testler, entegrasyon testleri ve temel güvenlik kontrolleriyle hataları yayından önce yakalarız.

  5. 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.

  6. 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.

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.

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
    Bu modelle teklif alın: Proje bazlı
  • 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
    Bu modelle teklif alın: Bakım ve destek
  • 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
    Bu modelle teklif alın: Danışmanlık

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.

İlgili hizmetler ve sayfalar

Apache Spark çözümleri için teklif alın

Kısa bir ön görüşmede ihtiyacınızı dinleyip kapsamı, çalışma modelini ve takvimi yazılı olarak paylaşırız.

+90 552 579 93 21