JDBC bağlantısı

Uyarı

Bu özellik Databricks Runtime 18.1 ve DBSQL 2025.40 ve üzeri için Genel Önizleme sürümündedir. SQL ambarları için Sunucusuz SQL Ambarları'nda yalıtılmış iş yükleri için ağı etkinleştirme önizlemesini de kabul etmeniz gerekir.

Azure Databricks, JDBC kullanarak dış veritabanlarına bağlanmayı destekler. Spark Veri Kaynağı API'siyle veya Azure Databricks Remote Query SQL API'siyle bir veri kaynağını okumak ve yazmak için JDBC Unity Kataloğu bağlantısı kullanabilirsiniz. JDBC bağlantısı, Unity Kataloğu'nda bir dış veritabanına erişmek için JDBC sürücüsünü, URL yolunu ve kimlik bilgilerini belirten güvenli hale getirilebilir bir nesnedir. JDBC bağlantısı sunucusuz, standart kümeler, ayrılmış kümeler ve Databricks SQL gibi Unity Kataloğu işlem türlerinde desteklenir.

JDBC bağlantısı kullanmanın avantajları

  • Spark Veri Kaynağı API'siyle JDBC kullanarak veri kaynaklarına okuma ve yazma.
  • Uzaktan Sorgu SQL API'sini kullanarak JDBC ile veri kaynaklarından okuma.
  • Unity Kataloğu bağlantısı kullanarak veri kaynağına yönetilen erişim.
  • Bağlantıyı bir kez oluşturun ve herhangi bir Unity Kataloğu işleminde yeniden kullanabilirsiniz.
  • Spark ve işlem yükseltmeleri için kararlı.
  • Bağlantı kimlik bilgileri sorgulayan kullanıcıdan gizlenir.

JDBC ile sorgu federasyonu karşılaştırması

JDBC, sorgu federasyonu için tamamlayıcıdır. Databricks, aşağıdaki nedenlerle sorgu federasyonunun seçilmesini önerir:

  • Sorgu federasyonu, yabancı bir katalog kullanarak tablo düzeyinde ayrıntılı erişim denetimleri ve idare sağlar. JDBC Unity Kataloğu bağlantısı yalnızca bağlantı düzeyinde idare sağlar.
  • Sorgu federasyonu, en iyi sorgu performansı için Spark sorgularını aşağı doğru iter.

Uyarı

Sorgu federasyonu Oracle, MySQL, PostgreSQL, SQL Server ve Snowflake gibi birçok popüler veritabanını destekler. Veritabanınız destekleniyorsa Databricks, JDBC bağlantısı yerine sorgu federasyonu kullanılmasını önerir. Desteklenen veritabanlarının tam listesi için bkz. Lakehouse Federasyonu .

Ancak, aşağıdaki senaryolarda bir JDBC Unity Kataloğu bağlantısı kullanmayı seçin:

  • Veritabanınız sorgu federasyonu tarafından desteklenmiyor.
  • Belirli bir JDBC sürücüsü kullanmak istiyorsunuz.
  • Veri kaynağına Spark kullanarak yazmanız gerekiyor (sorgu federasyonu yazma işlemlerini desteklemez).
  • Spark Veri Kaynağı API seçenekleri aracılığıyla daha fazla esneklik, performans ve paralelleştirme denetimine ihtiyacınız vardır.
  • Spark query seçeneğiyle kaynak SQL sorgularını aşağı göndermek istiyorsunuz.

Neden JDBC ile PySpark veri kaynaklarını karşılaştırmalı olarak kullanmalısınız?

PySpark veri kaynakları , JDBC Spark veri kaynağına alternatiftir.

JDBC bağlantısı kullanın:

  • Yerleşik Spark JDBC desteğini kullanmak istiyorsanız.
  • Mevcut, kullanıma hazır bir JDBC sürücüsünü kullanmak istiyorsanız.
  • Bağlantı düzeyinde Unity Kataloğu idaresine ihtiyacınız varsa.
  • Herhangi bir Unity Kataloğu işlem türünden bağlanmak istiyorsanız: sunucusuz, standart, ayrılmış, SQL API.
  • Python, Scala ve SQL API'leriyle bağlantınızı kullanmak istiyorsanız.

PySpark veri kaynağı kullanın:

  • Python kullanarak Spark veri kaynağınızı veya veri havuzunuzu geliştirme ve tasarlama esnekliğine sahip olmak istiyorsanız.
  • Yalnızca not defterlerinde veya PySpark iş yüklerinde kullanıyorsanız.
  • Özel bölümleme mantığı uygulamak istiyorsanız.

Ne JDBC ne de PySpark veri kaynakları, işlemlerin sırasını seçmeye yardımcı olmak için istatistikleri sorgu iyileştiricisine sunmaz.

Nasıl çalışır?

JDBC bağlantısı kullanarak bir veri kaynağına bağlanmak için Spark işlemde JDBC sürücüsünü yükleyin. Bağlantı, Spark güvenliği ve Unity Kataloğu idaresi sağlamak için JDBC sürücüsünü Spark işlem tarafından erişilebilen yalıtılmış bir korumalı alana belirtmenize ve yüklemenize olanak tanır. Korumalı alanlama hakkında daha fazla bilgi için bkz. Databricks kullanıcı yalıtımını nasıl sağlar?.

Başlamadan önce

Sunucusuz ve standart kümelerde Spark Veri Kaynağı API'siyle JDBC bağlantısı kullanmak için önce aşağıdaki gereksinimleri karşılamanız gerekir:

Çalışma alanı gereksinimleri:

  • Unity Kataloğu için etkinleştirilmiş bir Azure Databricks çalışma alanı

İşlem gereksinimleri:

  • İşlem kaynağınızdan hedef veritabanı sistemine ağ bağlantısı. Bkz. Ağ bağlantısı.
  • Azure Databricks işlem, standart modda veya ayrılmış erişim modunda sunucusuz veya Databricks Runtime 17.3 LTS veya üzerini kullanmalıdır.
  • SQL ambarları profesyonel veya sunucusuz olmalı ve 2025.35 veya üzerini kullanmalıdır.

Gerekli izinler:

  • Bir bağlantı oluşturmak için, çalışma alanına bağlı meta veri deposunda CREATE CONNECTION ayrıcalığına sahip olmanız gerekir.
  • CREATE veya MANAGE bağlantı oluşturucusunun bir Unity Catalog birimine erişimi.
  • Bağlantıyı sorgulayan kullanıcının hacim erişimi.
  • Aşağıdaki her görev tabanlı bölümde ek izinler belirtilir.

Kimlik doğrulama yöntemleri

Statik Kimlik Bilgileri

Statik kimlik bilgisi kimlik doğrulaması kimlik bilgilerini doğrudan bağlantı üzerinde depolar; örneğin, kullanıcı adı ve parola, API anahtarı veya hedef JDBC sürücüsü tarafından kabul edilen başka bir kimlik bilgisi alanı. Bağlantı kullanıldığında kimlik bilgileri JDBC sürücüsüne olduğu gibi iletilir.

Makineden Makineye OAuth

Important

Bu özellik Beta sürümündedir. Çalışma alanı yöneticileri Bu özelliğe erişimi Önizlemeler sayfasından denetleyebilir. Bkz. Azure Databricks önizlemelerini yönetme.

OAuth Makineden Makineye (M2M) kimlik doğrulaması, iki sistem veya uygulama doğrudan kullanıcı katılımı olmadan iletişim kurarken kullanılır. Belirteçler, kimlik doğrulaması için kendi kimlik bilgilerini kullanan kayıtlı bir makine istemcisine verilir. Bu kimlik doğrulama yöntemi, kullanıcı bağlamı gerekmeyen hizmet-hizmet iletişimi, mikro hizmetler ve otomasyon görevleri için idealdir.

JDBC bağlantısı OAuth M2M kullandığında, Unity Kataloğu yapılandırılan belirteç uç noktasında istemci kimlik bilgilerini değiştirir ve sürücünün belirteç parametresini kullanarak JDBC sürücüsüne yalnızca kısa süreli erişim belirtecini geçirir.

1. Adım: Birim oluşturma ve JDBC JAR'ı yükleme

JDBC bağlantısı, JDBC sürücüsü JAR'sini bir Unity Kataloğu biriminden okur ve yükler.

  1. Mevcut bir birime yazma ve okuma erişiminiz yoksa yeni bir birim oluşturun:

    CREATE VOLUME IF NOT EXISTS my_catalog.my_schema.my_volume_JARs
    
  2. JDBC sürücüsü JAR'sini birime yükleyin.

  3. Bağlantıyı sorgulayan kullanıcılara birim üzerinde okuma erişimi verin:

    GRANT READ VOLUME ON VOLUME my_catalog.my_schema.my_volume_JARs TO `account users`
    

2. Adım: JDBC bağlantısı oluşturma

JDBC bağlantısı, Unity Kataloğu'nda güvenliği sağlanabilir bir nesnedir. JDBC sürücüsünü, URL yolunu, dış veritabanı sistemine erişmek için kimlik bilgilerini ve sorgulayan kullanıcının belirtebileceği izin verilenler listesine alınmış seçenekleri belirtir. Bağlantı oluşturmak için, Bir Azure Databricks not defterinde veya CREATE CONNECTION Databricks SQL sorgu düzenleyicisinde Katalog Gezgini'ni veya SQL komutunu kullanın. Desteklenen kimlik doğrulama yöntemleri için bkz. Kimlik doğrulama yöntemleri.

Uyarı

Bağlantı oluşturmak için Databricks REST API'sini veya Databricks CLI'yi de kullanabilirsiniz. Bkz. POST /api/2.1/unity-catalog/connections ve Unity Catalog komutları.

Gerekli izinler: Meta veri deposu yöneticisi veya ayrıcalığına CREATE CONNECTION sahip kullanıcı.

Bağlantı oluşturmadan önce aşağıdakilere dikkat edin:

  • Url ve kimlik bilgileri yalnızca gerekli seçeneklerdir. Kimlik bilgilerini URL'ye gömmeyin, çünkü günlükler veya hatalar bunları açığa çıkarabilir. Seçtiğiniz kimlik doğrulama yöntemi için ayrılmış kimlik bilgisi seçeneklerini kullanın.
  • Kullanıcıların sorgu zamanında belirtebileceği Spark veri kaynağı seçeneklerini denetlemek için kullanın externalOptionsAllowList . Belirtilmezse, varsayılan 'dbtable,query,partitionColumn,lowerBound,upperBound,numPartitions'olur. Kullanıcıları yalnızca bağlantıda tanımlanan seçeneklerle kısıtlamak için boş bir dizeye ayarlayın. Kullanıcılar hiçbir zaman url veya host belirtemez.

Katalog Tarayıcısı

  1. Azure Databricks çalışma alanınızda Veri simgesine tıklayın.Katalog'a gidin.

  2. Tak simgesine tıklayın. Bağlan'a ve ardından Bağlantılar'a tıklayın.

  3. Bağlantı oluştur'a tıklayın.

  4. Bağlantı temel bilgileri sayfasında, Bağlantı ayarlama sihirbazını açın ve kullanıcı dostu bir Bağlantı adıgirin.

  5. Bağlantı türü içinJDBC'yi seçin.

  6. (İsteğe bağlı) Açıklama ekleyin.

  7. Nextöğesine tıklayın.

  8. Bağlantı ayrıntıları sayfasında aşağıdaki bağlantı özelliklerini girin:

    Property Açıklama
    URL Veritabanınızın JDBC URL'si biçimindedir jdbc:subprotocol:subname (örneğin, jdbc:oracle:thin:@<host>:<port>:<SID>).
    Java bağımlılıkları Unity Kataloğu birimlerindeki JDBC sürücüsü JAR dosyaları. Her JAR'ı eklemek için JAR Bağımlılığı Ekle'ye tıklayın (örneğin, /Volumes/<catalog>/<schema>/<volume_name>/ojdbc11.jar).
    Dış seçenekler izin ver listesi Kullanıcıların sorgu zamanında belirtebileceği Spark veri kaynağı seçeneklerinin virgülle ayrılmış listesi. Varsayılan değer dbtable,query,partitionColumn,lowerBound,upperBound,numPartitions’dır. Kullanıcıları yalnızca bağlantıda tanımlanan seçeneklerle kısıtlamak için boş bir değere ayarlayın.
    Ek Seçenekler Sürücüye anahtar-değer çiftleri olarak geçirilen rastgele JDBC sürücü seçenekleri. Veritabanı kimlik bilgilerini (örneğin, anahtar user ve anahtar password) ve sürücüye özgü diğer özellikleri ayarlamak için bu bölümü kullanın. Gerektiğinde kullanıcı arabirimi ve JSON giriş modları arasında geçiş yapın.
  9. Bağlantı oluştur'a tıklayın.

OAuth Makineler Arası (Beta)

Important

Bu özellik Beta sürümündedir. Çalışma alanı yöneticileri Bu özelliğe erişimi Önizlemeler sayfasından denetleyebilir. Bkz. Azure Databricks önizlemelerini yönetme.

jdbc_oauth_m2m_connector Çalışma alanınızda önizleme etkinleştirildiğinde, Bağlantı temel bilgileri sayfasında Statik Kimlik Bilgileri ve OAuth Makinesinden Makineye seçeneklerini içeren Kimlik Doğrulama türü alanı görüntülenir. OAuth M2M JDBC bağlantısı oluşturmak için:

  1. Bağlantı temel bilgileri sayfasında, Kimlik doğrulama türüOAuth Machine to Machine olarak ayarlayın.

  2. Nextöğesine tıklayın.

  3. Bağlantı ayrıntıları sayfasında Url ve Java bağımlılıklarına ek olarak aşağıdaki özellikleri girin:

    Property Açıklama
    Müşteri Kimliği Uygulama için verilen OAuth istemci kimliği.
    İstemci gizli anahtarı Uygulama için oluşturulan OAuth istemci gizli anahtarı.
    OAuth kapsamı Belirteç değişimi sırasında istekte bulunulacak kapsam. Büyük/küçük harfe duyarlı dizelerden oluşan, boşlukla ayrılmış bir liste olarak ifade edilir.
    Belirteç uç noktası Erişim belirteci için istemci kimlik bilgilerini değiştirmek için kullanılan OAuth 2.0 belirteç uç noktası. Genellikle biçimindedir https://authorization-server.com/oauth/token.
    OAuth kimlik bilgisi değişim yöntemi İstemci kimlik bilgileri belirteç uç noktasına nasıl geçirilir:
    • header_and_body — kimlik bilgileri hem üst bilgide hem de Authorization istek gövdesinde (varsayılan) gönderilir.
    • body_only — kimlik bilgileri yalnızca istek gövdesinde gönderilir.
    • header_only — kimlik bilgileri yalnızca Authorization başlıkta gönderilir.
    JDBC belirteci parametre adı Hedef JDBC sürücüsünün OAuth erişim belirtecini kabul etmek için gerektirdiği KEY özelliği. Azure Databricks bu VALUE parametresini oluşturulan geçerli bir OAuth erişim belirteci ile dinamik olarak doldurur. Tipik KEY'ler: access_token, oauthToken, veya password. Doğru KEY parametre adı için JDBC sürücünüzün belgelerine bakın.
  4. Bağlantı oluştur'a tıklayın.

SQL

CREATE CONNECTION Not defterinde veya Databricks SQL sorgu düzenleyicisinde SQL komutunu kullanın.

Statik Kimlik Bilgileri

İlgili birimi, URL'yi, kimlik bilgilerini ve externalOptionsAllowListayarlayarak aşağıdaki komutu çalıştırın:

DROP CONNECTION IF EXISTS <JDBC-connection-name>;

CREATE CONNECTION <JDBC-connection-name> TYPE JDBC
ENVIRONMENT (
  java_dependencies '["/Volumes/<catalog>/<Schema>/<volume_name>/JDBC_DRIVER_JAR_NAME.jar"]'
)
OPTIONS (
  url 'jdbc:<database_URL_host_port>',
  user '<user>',
  password '<password>',
  externalOptionsAllowList 'dbtable,query,partitionColumn,lowerBound,upperBound,numPartitions'
);

DESCRIBE CONNECTION <JDBC-connection-name>;

Örnek: Oracle JDBC bağlantısı

Aşağıdaki örnek, Oracle ince sürücüsünü kullanarak oracle veritabanına JDBC bağlantısı oluşturur. Bu komutu çalıştırmadan önce ojdbc11.jar sürücü JAR'sini (örneğin, ) indirin ve bir Unity Kataloğu birimine yükleyin.

CREATE CONNECTION oracle_connection TYPE JDBC
ENVIRONMENT (
  java_dependencies '["/Volumes/my_catalog/my_schema/my_volume_JARs/ojdbc11.jar"]'
)
OPTIONS (
  url 'jdbc:oracle:thin:@<host>:<port>:<SID>',
  user '<oracle_user>',
  password '<oracle_password>',
  externalOptionsAllowList 'dbtable,query'
);
Makineden Makineye OAuth

İlgili birimi, URL'yi, kimlik bilgilerini ve externalOptionsAllowListayarlayarak aşağıdaki komutu çalıştırın:

CREATE CONNECTION <JDBC-connection-name> TYPE JDBC
ENVIRONMENT (
  java_dependencies '["/Volumes/<catalog>/<schema>/<volume_name>/JDBC_DRIVER_JAR_NAME.jar"]'
)
OPTIONS (
  url 'jdbc:<database_URL_host_port>',
  client_id '<client-id>',
  client_secret '<client-secret>',
  oauth_scope '<scope>',
  token_endpoint '<https://authorization-server.com/oauth/token>',
  oauth_credential_exchange_method 'header_and_body',
  jdbc_token_parameter_name '<driver-token-parameter-name>',
  externalOptionsAllowList 'dbtable,query,partitionColumn,lowerBound,upperBound,numPartitions'
);

Örnek: OAuth M2M ile PostgreSQL JDBC bağlantısı

Aşağıdaki örnek, OAuth Makineden Makineye kimlik doğrulaması kullanarak PostgreSQL veritabanına JDBC bağlantısı oluşturur. Bu komutu çalıştırmadan önce PostgreSQL JDBC sürücü JAR'sini (örneğin, postgresql-42.7.3.jar) PostgreSQL JDBC indirmeleri sayfasından indirin ve bir Unity Kataloğu birimine yükleyin. Parola alanında bir OAuth erişim belirtecini kabul edecek şekilde yapılandırılmış PostgreSQL dağıtımları için jdbc_token_parameter_name değerini password olarak ayarlayın.

CREATE CONNECTION postgres_oauth_connection TYPE JDBC
ENVIRONMENT (
  java_dependencies '["/Volumes/my_catalog/my_schema/my_volume_JARs/postgresql-42.7.3.jar"]'
)
OPTIONS (
  url 'jdbc:postgresql://<host>:<port>/<database>?sslmode=require',
  client_id '<client-id>',
  client_secret '<client-secret>',
  oauth_scope '<scope>',
  token_endpoint 'https://authorization-server.com/oauth/token',
  oauth_credential_exchange_method 'header_and_body',
  jdbc_token_parameter_name 'password',
  externalOptionsAllowList 'dbtable,query'
);

Bağlantı sahibi veya yöneticisi, JDBC sürücüsü tarafından desteklenen ek seçenekleri bağlantıya ekleyebilir. Güvenlik nedeniyle, bağlantıda tanımlanan seçenekler sorgu zamanında geçersiz kılınamaz.

3. Adım: USE ayrıcalığını ver

Kullanıcılara USE bağlantıda ayrıcalık verin:

GRANT USE CONNECTION ON CONNECTION <connection-name> TO <user-name>;

Mevcut bağlantıları yönetme hakkında bilgi için bkz Lakehouse Federation için Bağlantıları Yönetme.

4. Adım: Veri kaynağını sorgulama

Ayrıcalığı olan USE CONNECTION kullanıcılar JDBC bağlantısını kullanarak veri kaynağını Spark aracılığıyla sorgulayabilir veya uzaktan sorgulama yapmak için SQL API'sini kullanabilir. Kullanıcılar JDBC sürücüsü tarafından desteklenen ve JDBC bağlantısında externalOptionsAllowList belirtilen spark veri kaynağı seçeneklerini ekleyebilir (örneğin, bu örnekte: 'dbtable,query,partitionColumn,lowerBound,upperBound,numPartitions'). İzin verilen seçenekleri görüntülemek için aşağıdaki sorguyu çalıştırın:

DESCRIBE CONNECTION <JDBC-connection-name>;

Piton

df = (
  spark.read.format('jdbc')
  .option('databricks.connection', '<JDBC-connection-name>')
  .option('query', 'select * from <table_name>') # query in source SQL language - Option specified by querying user
  .load()
)

df.display()

SQL

SELECT * FROM
remote_query('<JDBC-connection-name>', query => 'SELECT * FROM <table>'); -- query in source SQL language - Option specified by querying user

Migration

Databricks, mevcut Spark Veri Kaynağı API iş yüklerinden geçiş yapmak için aşağıdakileri yapmanızı önerir:

  • Spark Veri Kaynağı API'sindeki seçeneklerden URL'yi ve kimlik bilgilerini kaldırın.
  • databricks.connection Spark Veri Kaynağı API'sindeki seçeneklere öğesini ekleyin.
  • İlgili URL ve kimlik bilgileriyle bir JDBC bağlantısı oluşturun.
  • Bağlantıda, statik olması ve kullanıcıları sorgulayarak belirtilmemesi gereken seçenekleri belirtin.
  • Bağlantının externalOptionsAllowListiçinde, Spark Veri Kaynağı API kodunda sorgu zamanında kullanıcılar tarafından ayarlanması veya değiştirilmesi gereken veri kaynağı seçeneklerini belirtin (örneğin, 'dbtable,query,partitionColumn,lowerBound,upperBound,numPartitions').

Sınırlamalar

Spark Veri Kaynağı API'si

  • URL ve konak Spark Veri Kaynağı API'sine eklenemez.
  • .option("databricks.connection", "<Connection_name>") gereklidir.
  • Bağlantıda tanımlanan seçenekler sorgu zamanında kodunuzdaki Veri Kaynağı API'sinde kullanılamaz.
  • Kullanıcıları sorgulayarak yalnızca içinde externalOptionsAllowList belirtilen seçenekler kullanılabilir.
  • JDBC sürücüsünün bellek sınırı 400 MiB'dir. Sınıra ulaşılırsa daha küçük fetchSize bir sınır kullanmayı göz önünde bulundurun.
  • Spark JDBC veri kaynağı, harici veritabanına karşı UPDATE veya DELETE gibi isteğe bağlı DML ifadelerini desteklemez. Satır düzeyi değişiklikleri değil, verilerin okunmasını ve tabloların tamamının eklenmesini veya üzerine yazılmasını destekler.

Support

  • Spark veri kaynakları desteklenmez.
  • Lakeflow işlem hatları desteklenmez.
  • Oluşturma sırasında bağlantı bağımlılığı: java_dependencies yalnızca JDBC sürücüsü JAR'leri için birim konumlarını destekler.
  • Sorguda bağlantı bağımlılığı: Bağlantı kullanıcısının JDBC sürücüsü JAR'sinin bulunduğu birime erişmesi gerekir READ .
  • Ayrılmış erişim modunda (eski adıyla tek kullanıcılı erişim modu) kullanmak için bağlantının sahibi veya yöneticisi olmanız gerekir.
  • SSL sertifikaları desteklenmez.
  • Yabancı kataloglar JDBC bağlantılarında desteklenmez.

Authentication

  • Bu bağlayıcı Statik Kimlik Bilgilerini ve OAuth Makineden Makineye'yi destekler. Unity Kataloğu kimlik bilgilerini veya hizmet kimlik bilgilerini desteklemez.

Ağ Kurma

  • Hedef veritabanı sistemi ve Azure Databricks çalışma alanı aynı sanal ağda olamaz.

Ağ bağlantısı

İşlem kaynağınızdan hedef veritabanı sistemine ağ bağlantısı gereklidir. Genel ağ yönergeleri için bkz. Lakehouse Federasyonu için ağ önerileri.

Klasik işlem: standart ve ayrılmış kümeler

Azure Databricks sanal ağlar yalnızca Spark kümelerine izin verecek şekilde yapılandırılır. Başka bir altyapıya bağlanmak için hedef veritabanı sistemini farklı bir sanal ağa yerleştirin ve sanal ağ eşlemesini kullanın. VNet eşlemesi kurulduktan sonra, kümede veya veri ambarında connectionTest UDF’sini kullanarak bağlantınızı denetleyin.

Azure Databricks çalışma alanınız ve hedef veritabanı sistemleriniz aynı sanal ağdaysa, Databricks aşağıdakilerden birini önerir:

  • Sunucusuz işlem kullanın.
  • Hedef veritabanınızı 80 ve 443 numaralı bağlantı noktaları üzerinden TCP ve UDP trafiğine izin verecek şekilde yapılandırın ve bu bağlantı noktalarını bağlantıda belirtin.

Serverless

Sunucusuz işlemde JDBC bağlantınızı kullanırken, bir izin verilenler listesine giden IP'ler ekleyerek hedef veritabanı sistemine sunucusuz işlem erişimi için bir güvenlik duvarı yapılandırabilirsiniz . Alternatif olarak , özel bağlantı yapılandırabilirsiniz.

Bağlantı testi

Azure Databricks işlem ile veritabanı sisteminiz arasındaki bağlantıyı test etmek için aşağıdaki UDF'yi kullanın:

CREATE OR REPLACE TEMPORARY FUNCTION connectionTest(host string, port string) RETURNS string LANGUAGE PYTHON AS $$
import subprocess
try:
    command = ['nc', '-zv', host, str(port)]
    result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    return str(result.returncode) + "|" + result.stdout.decode() + result.stderr.decode()
except Exception as e:
    return str(e)
$$;

SELECT connectionTest('<database-host>', '<database-port>');

FAQ

Aşağıdaki sık sorulan sorular, JDBC bağlantıları için predicate pushdown davranışını ele alır.

JDBC, yüklem aşağı itmeyi destekliyor mu?

Yes. Filtreler hem Spark Veri Kaynağı API'si (format('jdbc')) remote_query hem de SQL işlevi için varsayılan olarak uzak veritabanına gönderilir. Hangi önkoşulların gönderilebileceği JDBC sürücüsüne ve diyalektine bağlıdır, bu nedenle sorgunuzda çalıştırın EXPLAIN ve hangi filtrelerin kaynağa gönderildiğini onaylamak için fiziksel planı inceleyin. remote_query SQL işlevi için, pushdown.filters.enabled gibi seçeneklerle belirli pushdown işlemlerini (filtreler, limitler, ofsetler ve toplulaştırmalar) denetleyebilirsiniz; bunların tümü varsayılan olarak etkindir.

Koşul gönderimi, tablo istatistiklerini sorgu iyileştiricisine ifşa etme özelliğinden farklıdır. JDBC ve PySpark veri kaynakları, önkoşulların aşağı gönderilip gönderilmediğine bakılmaksızın işlemlerin sırasını seçmeye yardımcı olmak için istatistikleri sorgu iyileştiricisine sunmaz.