Options

Bu sayfada, Azure Databricks'te Yapılandırılmış Akış kullanarak Apache Kafka'dan okuma ve Apache Kafka'ya yazma yapılandırma seçenekleri açıklanmaktadır.

Azure Databricks Kafka bağlayıcısı Apache Spark Kafka bağlayıcısının üzerine kurulmuştur ve tüm standart Kafka yapılandırma seçeneklerini destekler. ön ekli kafka. tüm seçenekler doğrudan temel Kafka istemcisine geçirilir. Örneğin, .option("kafka.max.poll.records", "500") Kafka tüketicisinin max.poll.records özelliğini ayarlar. Kullanılabilir Kafka özelliklerinin tam listesi için Kafka yapılandırma belgelerine bakın.

Yapılandırılmış Akış kaynağı ve havuz seçeneklerinin tam listesi için bkz. Kafka ve Yapılandırılmış Akış + Kafka Tümleştirme Kılavuzu.

Gerekli seçenekler

Gerekli seçeneklerle ilgili ayrıntılar için bkz. Kafka.

Hem okuma hem de yazma için aşağıdaki seçenek gereklidir:

Key Açıklama
kafka.bootstrap.servers Kafka aracıları için konak:bağlantı noktası adreslerinin virgülle ayrılmış listesi. Kafka istemcisinin bootstrap.servers özelliğini ayarlar.
Kafka'dan veri olmadığını fark ederseniz, yanlış adresler için bu aracı adres listesine bakın. Aracı adres listesi yanlışsa herhangi bir hata olmayabilir. Kafka istemcileri, aracıların sonunda kullanılabilir olacağını varsayar ve ağ hataları aldıklarında sonsuza kadar yeniden dener.

Kafka okumaları için, hangi konuların tüketileceğini belirlemek için aşağıdaki seçeneklerden tam olarak birini de belirtmeniz gerekir:

  • subscribe
  • subscribePattern
  • assign

Kafka'ya yazarken, isteğe bağlı olarak tüm satırlar için bir hedef konu belirtme seçeneğini ayarlayabilirsiniz topic . Ayarlanmadıysa, DataFrame bir topic sütun içermelidir.

Ortak okuyucu seçenekleri

Kafka'dan okurken yaygın olarak aşağıdaki seçenekler kullanılır:

Key Açıklama
minPartitions Kafka'dan okunacak en az bölüm sayısı.
maxRecordsPerPartition Spark bölümü başına en fazla kayıt sayısı.
failOnDataLoss Verilerin kaybolması mümkün olduğunda sorgunun başarısız olup olmayacağı.
maxOffsetsPerTrigger Tetikleyici aralığı başına işlenen en fazla uzaklık sayısı.
startingOffsets Sorgunun okuma işleminin başladığı uzaklık.
endingOffsets Toplu sorgular için okumanın durdurulacağı yer.
groupIdPrefix Otomatik olarak oluşturulan tüketici grubu kimliği için özelleştirilmiş ön ek.
kafka.group.id Kafka'dan okurken kullanılacak grup kimliği.
Beklenmeyen davranışlara neden olabileceğinden bunu dikkatli kullanın. Varsayılan olarak, her sorgu verileri okumak için benzersiz bir grup kimliği oluşturur. Bu, her sorgunun diğer tüketicilerin müdahalesini önleyen kendi tüketici grubuna sahip olmasını sağlar ve her sorgunun abone olunan konuların tüm bölümlerini okumasına olanak tanır. Kafka grup tabanlı yetkilendirme gibi bazı senaryolarda, verileri okumak için belirli yetkili grup kimliklerini kullanabilirsiniz.
Aynı grup kimliğine sahip sorgular birbiriyle karışabilir ve yalnızca kısmi verileri okuyabilir. Eşzamanlı toplu iş ve akış iş yüklerini çalıştırdığınızda veya sorguları hızla başlatıp yeniden başlattığınızda girişim oluşabilir.
Sorunları en aza indirmek için Kafka tüketici yapılandırmasını session.timeout.ms çok küçük olarak ayarlayın.
includeHeaders Kafka ileti üst bilgilerinin çıkışa eklenip eklenmeyeceği.
bytesEstimateWindowLength Ölçüm aracılığıyla estimatedTotalBytesBehindLatest kalan baytları tahmin etmek için kullanılan zaman penceresi.

Yapılandırılmış Akış kaynağı ve havuz seçeneklerinin tam listesi için bkz. Kafka ve Yapılandırılmış Akış + Kafka Tümleştirme Kılavuzu.

Ortak yazıcı seçenekleri

Kafka'ya yazarken yaygın olarak aşağıdaki seçenekler kullanılır:

Key Açıklama
topic Tüm satırlar için konuyu ayarlar. Bu, verilerdeki herhangi bir topic sütundan önceliklidir.
includeHeaders Kafka üst bilgilerinin satıra eklenip eklenmeyeceği.

Önemli

Databricks Runtime 13.3 LTS ve üstü, kafka-clients kütüphanesinin varsayılan olarak idempotent yazmaları etkinleştiren daha yeni bir sürümünü içerir. Kafka havuzunuz yapılandırılmış ancak etkinleştirilmemiş IDEMPOTENT_WRITE ACL'lerle 2.8.0 veya üzeri bir sürüm kullanıyorsa yazma işlemleri başarısız olur. Kafka 2.8.0 veya sonraki bir sürümüne yükselterek veya ayarını .option("kafka.enable.idempotence", "false")yaparak bu sorunu çözebilirsiniz.

Yapılandırılmış Akış kaynağı ve havuz seçeneklerinin tam listesi için bkz. Kafka ve Yapılandırılmış Akış + Kafka Tümleştirme Kılavuzu.

Kimlik doğrulama seçenekleri

Azure Databricks; Unity Catalog hizmeti kimlik bilgileri, SASL/SSL ve AWS MSK, Azure Event Hubs ve Google Cloud Managed Kafka için buluta özgü seçenekler de dahil olmak üzere Kafka için birden çok kimlik doğrulama yöntemini destekler.

Azure Databricks, bulut tarafından yönetilen Kafka hizmetlerinde kimlik doğrulaması için Unity Kataloğu hizmeti kimlik bilgilerini kullanmanızı önerir:

Seçenek Açıklama
databricks.serviceCredential Bulut tarafından yönetilen Kafka hizmetlerinde (AWS MSK, Azure Event Hubs veya Google Cloud Managed Kafka) kimlik doğrulaması için Unity Kataloğu hizmeti kimlik bilgilerinin adı. Databricks Runtime 16.1 ve üzerinde kullanılabilir.
databricks.serviceCredential.scope Hizmet kimlik bilgileri için OAuth kapsamı. Bunu yalnızca Azure Databricks Kafka hizmetinizin kapsamını otomatik olarak çıkaramıyorsa ayarlayın.

Unity Kataloğu hizmeti kimlik bilgilerini kullandığınızda, , kafka.sasl.mechanismveya kafka.sasl.jaas.configgibi kafka.security.protocolSASL/SSL seçeneklerini belirtmeniz gerekmez.

Yaygın SASL/SSL seçenekleri şunlardır:

Seçenek Açıklama
kafka.security.protocol Aracılarla iletişim kurmak için kullanılan protokol (örneğin , SASL_SSLSSL, PLAINTEXT).
kafka.sasl.mechanism SASL mekanizması (örneğin, PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, OAUTHBEARER, AWS_MSK_IAM).
kafka.sasl.jaas.config JAAS oturum açma yapılandırma dizesi.
kafka.sasl.login.callback.handler.class SASL kimlik doğrulaması için bir oturum açma geri çağırma işleyicisinin tam sınıf adı.
kafka.sasl.client.callback.handler.class SASL kimlik doğrulaması için istemci geri çağırma işleyicisinin tam sınıf adı.
kafka.ssl.truststore.location SSL güven deposu dosyasının konumu.
kafka.ssl.truststore.password SSL güven deposu dosyasının parolası.
kafka.ssl.keystore.location SSL anahtar deposu dosyasının konumu.
kafka.ssl.keystore.password SSL anahtar deposu dosyasının parolası.

Tam kimlik doğrulaması kurulum yönergeleri için bkz. Kimlik doğrulaması.

Ek kaynaklar