Tüm Ürünler
Search
Belge Merkezi

DataWorks:Databricks veri kaynağı

Son Güncelleme:Oct 10, 2026

Bu konu, Databricks verilerinin DataWorks ile eşitlenmesine yönelik yetenekleri ve desteklenen işlevleri açıklar.

Kullanım notları

  • Sınırlamalar

    • Kaynak grubu: Databricks Reader yalnızca Serverless kaynak gruplarını destekler. Kaynak grubuna bağlı VPC için Internet NAT ağ geçidi ve bir EIP yapılandırın.

    • Okuma modu: Veri eşitleme yalnızca JDBC üzerinden okumayı destekler.

    • Katalog türü ve özellik sınırlamaları: Veri kaynağı bağlantısını test etmek veya sihirbaz modunda bir eşitleme görevi yapılandırmak için DataWorks, Databricks REST API'yi çağırmak üzere databricks-sdk kullanır; bu işlem yalnızca Unity Catalog'u destekler. hive_metastore gibi kataloğunuz Unity Catalog değilse bu özellikler kullanılamaz. Aşağıdaki seçeneklerden birini seçin:

      • Seçenek 1 (önerilen): Unity Catalog'a geçiş yapın. DataWorks'ün tüm özelliklerini kullanmak için verilerinizi ve meta verilerinizi Unity Catalog'a taşımanızı Databricks önerir. Talimatlar için bkz. Unity Catalog'a geçiş.

      • Seçenek 2: Doğrudan komut dosyası modunu kullanın. DataWorks'te veri kaynağını yapılandırdıktan sonra Test Connectivity adımını atlayın ve eşitleme görevini geliştirmek için komut dosyası modunu kullanın.

  • Eşzamanlı okumalar ve veri tutarlılığı

    Databricks Reader, daha hızlı eşitleme sağlamak için verileri bölmek ve eşzamanlı görevler başlatmak amacıyla splitPk parametresini kullanır. Şu hususlara dikkat edin:

    • Eşzamanlı görevler aynı veritabanı işlemine dahil değildir ve tam olarak aynı anda başlamaz.

    • Veri kaynağı hala yazma işlemi alıyorsa eşzamanlı okumalar eksik veya tutarsız bir anlık görüntü üretebilir.

    Çözüm yolları: Teknik sınırlamalar nedeniyle birden çok iş parçacığı arasında mükemmel derecede tutarlı bir anlık görüntü elde edilemez. İş yükünüze göre aşağıdaki yaklaşımlardan birini seçin:

    • Seçenek 1: Veri bölme (splitPk) olmadan tek iş parçacıklı eşitleme kullanın. Bu yöntem kesin tutarlılık sağlar ancak daha yavaştır.

    • Seçenek 2: Eşitleme sırasında veri kaynağını statik tutun; örneğin tabloyu kilitleyerek, uygulama yazma işlemlerini geçici olarak devre dışı bırakarak veya çoğaltma eşitlemesini duraklatarak. Bu yöntem daha hızlıdır ancak üretim trafiğini etkileyebilir.

  • Kodlama

    Databricks Reader verileri JDBC ile çıkarır; JDBC, veritabanları arasındaki kodlamaları otomatik olarak algılar ve dönüştürür. Kodlamayı manuel olarak yapılandırmanız gerekmez.

  • Artımlı eşitleme

    Databricks Reader, bir SELECT ... WHERE ... deyimi çalıştırarak verileri çıkarır. Artımlı eşitleme, WHERE koşulunun oluşturulmasına bağlıdır.

    1. Önerilen yaklaşım (zaman damgası alanı):

      1. Kaynak tabloya modify_time gibi bir zaman damgası alanı ekleyin.

      2. Uygulama bir kayıt eklediğinde veya güncellediğinde (mantıksal silme dahil) zaman damgası alanını da güncelleyin.

      3. Son eşitleme noktasından sonraki değişiklikleri getirmek için görevin WHERE koşulunda zaman damgası alanını kullanın.

    2. Desteklenmeyen durum: İş tablosunda, zaman damgası veya otomatik artan ID gibi eklenen veya güncellenen kayıtları ayırt eden bir alan yoksa Databricks Reader artımlı eşitleme yapamaz ve tam eşitleme gerçekleştirmesi gerekir.

Desteklenen alan türleri

Çevrimdışı okumalar için Databricks Reader çoğu Databricks türünü destekler ancak bazı türler desteklenmez. Alan türlerinizi kontrol edin.

Aşağıdaki tabloda Databricks Reader tarafından desteklenen tür dönüşümleri listelenmiştir.


Tür kategorisi


Databricks veri türü


Tamsayı


TINYINT, SMALLINT, INT, BIGINT


Kayan nokta


FLOAT, DOUBLE, DECIMAL


Dize


STRING


Tarih ve saat


DATE, TIMESTAMP, TIMESTAMP_NTZ


Boole


BOOLEAN


Karmaşık tür


ARRAY, MAP, STRUCT


Diğer türler


INTERVAL, BINARY, GEOGRAPHY(srid), GEOMETRY(srid)

Veri kaynağı oluşturma

Bir veri eşitleme görevi geliştirmeden önce DataWorks'te ilgili veri kaynağını oluşturun. Prosedür için bkz. Veri kaynağı yapılandırması. Yapılandırma parametrelerine ilişkin açıklamalar yapılandırma arayüzünde mevcuttur.

Veri eşitleme görevi geliştirme

Bir eşitleme görevini yapılandırmaya yönelik giriş noktaları ve yaygın adımlar için aşağıdaki kılavuzlara bakın.

Tek tablo çevrimdışı eşitleme yapılandırma kılavuzu

SSS

  • S: Okuma işlemi [Databricks][JDBCDriver](500313) Error getting the data value from result set: Column13:[Databricks][JDBCDriver](500312) Error in fetching data rows: Timestamp Conversion has failed. hatasıyla başarısız oluyor.

    C: Databricks TIMESTAMP değerleri Java Timestamp tarafından desteklenen aralığın dışında kalabilir ve bu durum JDBC sürücüsü hatasına neden olur. column yapılandırmasını değiştirin; örneğin "column": ["CAST(col_timestamp AS STRING)"] şeklinde ayarlayın.

Ek: Örnek komut dosyası ve parametre açıklamaları

Çevrimdışı görev komut dosyası yapılandırması

Çevrimdışı bir görev için komut dosyası modunu kullanıyorsanız gerekli parametreleri standart komut dosyası formatında yazın. Ayrıntılar için bkz. Komut dosyası modunda çevrimdışı eşitleme görevi yapılandırma. Aşağıda komut dosyası modundaki veri kaynağı parametreleri açıklanmaktadır.

Örnek Reader komut dosyası

{
  "type": "job",
  "version": "2.0",
  "steps": [
    {
      "stepType": "databricks",
      "parameter": {
        "datasource": "databricks",
        "schema": "schema1",
        "table": "table1",
        "readMode": "jdbc",
        "where": "id>1",
        "splitPk": "id",
        "column": [
          "c1",
          "c2"
        ]
      },
      "name": "Reader",
      "category": "reader"
    },
    {
      "stepType": "stream",
      "parameter": {},
      "name": "Writer",
      "category": "writer"
    }
  ],
  "setting": {
    "errorLimit": {
      "record": "0"
    },
    "speed": {
      "concurrent": 1
    }
  }
}

Reader komut dosyası parametreleri

Parametre

Açıklama

Zorunlu

Varsayılan değer

datasource

Veri kaynağı adı. Komut dosyası modu veri kaynakları eklemeyi destekler; bu değer, eklenen veri kaynağının adıyla eşleşmelidir.

Evet

Yok

column

Yapılandırılan tablodan eşitlenecek sütun adlarının JSON dizisi olarak ifade edilen listesi.

  • Sütun budama desteklenir, bu nedenle yalnızca bazı sütunları dışa aktarabilirsiniz.

  • Sütun yeniden sıralama desteklenir, bu nedenle dışa aktarma sırası tablo şemasından farklı olabilir.

  • Databricks SQL sözdizimine uygun oldukları sürece sabit değerler desteklenir.

Örneğin:"column":["id", "1", "'const name'", "null", "upper('abc_lower')", "2.3" , "true"]

  • id normal bir sütun adıdır.

  • 1 bir tamsayı sabitidir.

  • 'const name' bir dize sabitidir ve tek tırnak içine alınmalıdır.

  • null boş bir değerdir.

  • upper('abc_lower') bir işlev ifadesidir.

  • 2.3 bir kayan nokta sayıdır.

  • true bir Boole değeridir.

column içinde boş olmayan bir sütun kümesini açıkça belirtmeniz gerekir.

Evet

Yok

splitPk

splitPk belirtirseniz Databricks Reader verileri bölmek için splitPk alanını kullanır ve daha iyi performans için eşzamanlı eşitleme görevleri başlatır:

  • Bölümlerdeki veri çarpıklığını azaltmak için genellikle adil bir şekilde dağıtıldıklarından tablonun birincil anahtarını splitPk olarak kullanmanızı öneririz.

  • Şu anda splitPk yalnızca tamsayı alanlarında bölmeyi destekler. Kayan nokta, dize, tarih ve diğer türler desteklenmez; bunların belirtilmesi hataya neden olur.

Hayır

Yok

where

Filtre koşulu. Databricks Reader bunu belirtilen column, table ve where ile birleştirerek tam sorguyu oluşturur ve verileri çıkarır. Tipik bir iş yükünde bugünün verilerini eşitlemek için where değerini gmt_create>${bizdate} olarak ayarlayın. Koşul artımlı eşitlemeyi destekler. Boş bırakılırsa tüm tablo eşitlenir.

Hayır

Yok

schema

Eşitlenecek verileri içeren şema.

Evet

Yok

table

Eşitlenecek seçili tablo. Her görev bir tabloyu destekler.

Evet

Yok

readMode

Okuma modu. Şu anda yalnızca JDBC desteklenmektedir.

Hayır

jdbc