Skip to main content

General

Azure Data Lake Storage

Büyük veri analitiği için Azure Data Lake Storage Gen2'ye ölçeklenebilir dışa aktarım.

Büyük ölçekli analitik ve data lakehouse mimarileri için verileri doğrudan Azure Data Lake Storage Gen2'ye (ADLS Gen2) aktarın.

Bağlayıcı aşağıdakileri destekler:

  • Akıllı Gruplama (Smart Batching): Verimli dosya boyutları için verileri bellekte tamponlayın.
  • Dinamik Bölümleme: Zaman, cihaz, bölge veya konuya dayalı esnek dizin yapıları.
  • Parquet Formatı: Analitik iş yükleri (Synapse, Databricks, Spark) için optimize edilmiş sütunsal depolama.
open_in_new

ADLS Gen2 Dokümantasyonu

learn.microsoft.com/azure/storage/blobs/data-lake-storage-introduction

Azure Kurulum Rehberi

Bu bağlayıcıyı kullanmak için, Azure kaynaklarını Proxus'un veri yazmasına izin verecek şekilde yapılandırmanız gerekir.

1. Depolama Hesabı (Storage Account) Oluşturun

  1. Azure Portal'a gidin.
  2. Yeni bir Storage Account oluşturun.
  3. Advanced sekmesi altında, Hierarchical namespace özelliğini etkinleştirin. Bu, ADLS Gen2 için gereklidir.
  4. Account Name'i not edin.

2. Konteyner (Container) Oluşturun

  1. Yeni Depolama Hesabınıza gidin.
  2. Data storage > Containers'a gidin.
  3. Yeni bir konteyner oluşturun (örn. telemetry). Bu sizin FileSystem parametreniz olacaktır.

3. Bir Uygulama Kaydedin (Service Principal)

  1. Microsoft Entra ID (eski adıyla Azure AD) araması yapın.
  2. App registrations > New registration'a gidin.
  3. İsimlendirin (örn. "Proxus-Integration") ve kaydedin.
  4. Genel Bakış sayfasından, Application (client) ID ve Directory (tenant) ID değerlerini kopyalayın.

4. İstemci Gizli Anahtarı (Client Secret) Oluşturun

  1. Uygulama Kaydınızda, Certificates & secrets'a gidin.
  2. New client secret oluşturun.
  3. Value değerini hemen kopyalayın (daha sonra göremezsiniz). Bu sizin ClientSecret'ınızdır.

5. İzinleri Atayın (RBAC)

  1. Storage Account'unuza geri dönün.
  2. Access Control (IAM) > Add > Add role assignment seçin.
  3. Storage Blob Data Contributor rolünü seçin (Not: "Contributor" veya "Owner" veri erişimi için YETERLİ DEĞİLDİR).
  4. Erişimi User, group, or service principal'a atayın.
  5. Adım 3'te kaydettiğiniz Uygulamayı seçin.

Konfigürasyon Parametreleri

Proxus Yönetim Konsolu'nda bağlayıcıyı yapılandırmak için Integrations > Outbound Connectors'a gidin ve yeni bir Azure Data Lake hedefi oluşturun.

Parametreleri Düzenle Butonu
Parametreleri Düzenle Butonu

Konfigürasyon penceresini açmak için Edit Parameters butonuna tıklayın.

Parametreleri Düzenle Penceresi
Parametreleri Düzenle Penceresi

Kimlik Doğrulama

Kimlik doğrulama bir Service Principal üzerinden yönetilir.

ParametreZorunluTipVarsayılanAçıklama
AccountNameEvetstring-Azure Storage Account adı.
TenantIdEvetstring-Azure Tenant ID.
ClientIdEvetstring-Service Principal için Application (Client) ID.
ClientSecretEvetstring-Service Principal için Client Secret.

Depolama Ayarları

ParametreZorunluTipVarsayılanAçıklama
FileSystemEvetstring-Konteynerin (filesystem) adı.
DirectoryHayırstring/Konteyner içindeki temel dizin yolu.
FormatHayırstringparquetDışa aktarım formatı: parquet, json, veya csv.
PathPatternHayırstringAşağıya bakınOluşturulan dosyalar için dinamik yol şablonu.
CreateIfNotExistsHayırbooltrueMevcut değilse konteyner/dizin oluşturun.
CsvDelimiterHayırstring,Format csv olarak ayarlandığında kullanılan ayırıcı.

Toplu İşlem & Performans

Bu ayarlar, verilerin dahili tampondan Azure'a ne zaman aktarılacağını (flush) kontrol eder.

ParametreTipVarsayılanAçıklama
FlushIntervalSecondsint30Toplu işlem eşiklerini kontrol etme aralığı.
MaxWaitSecondsint300Bir partiyi (batch) aktarmadan önce açık tutmak için maksimum süre.
MinBatchCountint5000MaxWaitSeconds sonrasında bir aktarımı tetiklemek için gereken minimum kayıt sayısı.
MinBatchByteslong16777216MaxWaitSeconds sonrasında bir aktarımı tetiklemek için gereken minimum bayt (16MB).
MaxBatchCountint100000Anında aktarımı zorlamak için kayıt sayısı üst sınırı.
MaxBatchBytesint67108864Anında aktarımı zorlamak için parti boyutu üst sınırı (64MB).

Performans Değerlendirmeleri

"Küçük Dosya Problemi"nden Kaçınma

Büyük veri ekosistemlerinde, milyonlarca küçük dosyaya (örneğin her biri birkaç KB veya MB) sahip olmak, Apache Spark, Azure Databricks veya Azure Synapse gibi analitik motorlarının performansını önemli ölçüde düşürür. Bu "Küçük Dosya Problemi" (Small File Problem) olarak bilinir.

Bundan kaçınmak için şunları öneriyoruz:

  • Toplu İşlem Eşiklerini Artırın: Daha büyük dosyalar oluşturmak için MaxBatchBytes ve MaxBatchCount değerlerini ayarlayın. Parquet dosyaları büyük veri araçları için ideal olarak 128MB - 512MB olsa da, dosya başına 32MB - 64MB'a ulaşmak bile sık sık yapılan küçük aktarımlara göre büyük bir gelişmedir.
  • Bekleme Sürelerini Ayarlayın: Veri hacminiz düşükse, Proxus'un yeni bir dosya oluşturmadan önce daha fazla veri toplamasına izin vermek için MaxWaitSeconds değerini artırın (örneğin 30 dakika için 1800 yapın).
  • Optimize Edilmiş Yol Şablonları: Dizin yapınızın ortasında, çok fazla bölümlenmeye (partitioning) neden oluyorsa çok fazla yüksek kardinaliteli dinamik token (örneğin {guid} veya {deviceId}) kullanmaktan kaçının.

Yol Şablonu Tokenları

PathPattern parametresi çalışma zamanında değiştirilen dinamik tokenları destekler:

TokenAçıklama
{region}Region veya DefaultRegion meta verisinden alınan değer.
{subject}Subject veya DefaultSubject meta verisinden alınan değer.
{yyyy}Yıl (4 haneli).
{MM}Ay (01-12).
{dd}Gün (01-31).
{HH}Saat (00-23).
{yyyyMMddHH}Birleşik zaman damgası (örn. 2024011614).
{deviceId}Cihazın benzersiz kimliği.
{deviceName}Cihazın adı.
{guid}Dosya adı çakışmalarını önlemek için benzersiz bir tanımlayıcı.

Varsayılan Şablon: {region}/{subject}/{yyyy}/{MM}/{dd}/{HH}/telemetry-{yyyyMMddHH}-{deviceName}-{guid}

İç Davranış

  • Güvenilirlik: Dayanıklı bir outbox mekanizması kullanır. Mesajlar yalnızca Azure'a başarılı bir yüklemeden sonra onaylanır (ACK). Yükleme başarısız olursa, mesajlar olumsuz onaylanır (NAK) ve yeniden denenir.
  • Bellek Yönetimi: Yüksek hacimli dışa aktarımlar sırasında Large Object Heap (LOH) parçalanmasını önlemek için gelişmiş bellek havuzlama (RecyclableMemoryStream) kullanır.
  • Parquet Şeması: parquet formatı kullanıldığında, dosyalar deviceId, deviceName, topic, measureName, measureValueType ve double, long, bool, string türleri için değerler ile birlikte bir timestamp içeren kesin olarak yazılmış bir şema ile yazılır.