JDBC sürücüsü kullanarak Dataphin'e nasıl bağlanacağınızı öğrenin.
Önkoşullar
JDBC sürücüsünü kullanmadan önce Dataphin OpenAPI özelliğini etkinleştirmeniz gerekir.
Genel Bakış
İki kimlik doğrulama modu: Dataphin JDBC sürücüsü basit mod ve proxy mod olmak üzere iki kimlik doğrulama modunu destekler. Daha fazla bilgi için bkz. Kimlik doğrulama modları.
Tutarlı yürütme sonuçları: Dataphin JDBC sürücüsüyle bir SQL ifadesini çalıştırmak, bunu Dataphin konsolunda çalıştırmaya eşdeğerdir. Bu nedenle yürütme sonuçları tutarlıdır. İzinler, veri maskeleme kuralları, güvenlik ayarları ve kod standartları gibi Dataphin'de yapılandırılan özellikler, Dataphin JDBC sürücüsünün yürütme sonuçlarını da etkiler.
Sınırlamalar
Tüm hesaplama motorlarından ve bazı veri kaynaklarından Dataphin'e JDBC ile bağlanabilirsiniz. Desteklenen veri kaynakları arasında MySQL, Oracle, MaxCompute, Hive, AnalyticDB for MySQL 3.0, StarRocks, AnalyticDB for PostgreSQL ve Doris bulunur.
Dataphin JDBC sürücüsüyle bir SQL ifadesi çalıştırdığınızda Dataphin; SQL çevirisi ve veri maskeleme gibi görevler için ifadeyi ön işlemden geçirir. Sonuç verileri de Dataphin üzerinden iletilip yönlendirilir. Bu süreçler performans ek yüküne neden olabilir ve sorgu sürelerinin hesaplama motoruna doğrudan sorgu yapmaya kıyasla daha uzun olmasına yol açabilir.
-
Dataphin JDBC sürücüsü, SQL ifadelerini işlemek amacıyla OpenAPI aracılığıyla Dataphin'e gönderir; bu ifadeler ardından alttaki hesaplama motoruna iletilir. Dataphin JDBC sürücüsünü kullanmadan önce beklenen çağrı hacmini değerlendirmeniz ve Dataphin kümeniz ile hesaplama motorunuz için yatay ölçeklendirme gerekip gerekmediğine karar vermeniz gerekir.
NotBu değerlendirmeyi gerçekleştiremiyorsanız Dataphin kümeniz için kapasite değerlendirme talebini Dataphin İşletim ve Bakım ekibine iletebilirsiniz. Bu talep hesaplama motoru için kapasite değerlendirmesini kapsamaz.
Dataphin şu anda trafik kontrolü veya eşzamanlılık kontrolünü desteklememektedir. Olası etkileri dikkatlice değerlendirin.
JDBC sürücü sürümü ve indirme bağlantısı
Sürücü JAR paketini edinmek için Dataphin İşletim ve Bakım ekibiyle iletişime geçin.
Bağlantı parametreleri
Dataphin JDBC proxy modunda platform AccessKey ID'si ve AccessKey Secret'ını kullandığında erişim kullanıcısını ayarlamak için set sözdizimini kullanabilirsiniz.
set dp_delegation_uid = 'target_source_user_uid';set dp_delegation_name = 'target_user_name';
JDBC URL biçimi: jdbc:dataphin://host:port/catalog?[tenant_id=TenantID][&ssl=true][&log_level=Log_Level][&user=UserName][&password=PassWord][&delegation_uid=DelegationUid][&account_type=AccountType][&connect_timeout=ConnectTimeout][&engine=engine_type][compute_project=ProjectName]
Parametre adları büyük/küçük harfe duyarlıdır.
Köşeli parantezler ([]) yalnızca gösterim amaçlıdır ve gerçek bağlantı dizesinden çıkarılmalıdır.
Parametre | Zorunlu | Açıklama | Örnek |
host | Evet | Dataphin OpenAPI alan adı. Alan adını aşağıdaki şekilde gösterildiği gibi Kişisel Merkez'deki AccessKey Yönetimi sayfasındaki OpenAPI çağrı adresi bölümünden edinebilirsiniz:
| dataphin-openapi.****.aliyun.com |
port | Hayır | Bağlantı noktası, Dataphin OpenAPI için HTTPS'nin etkin olup olmamasına göre belirlenir. HTTPS etkinse bağlantı noktası | 80 |
catalog | Evet | Varsayılan sorgu kapsamı.
Not
| Exprojectname |
tenant_id | Evet | Sorgulanacak kiracı kimliği. | 111***111 |
ssl | Hayır | HTTPS kullanılacağını belirtir.
| False |
currentschema | Hayır | Veri kaynağının şeması.
| information_schema |
compute_project | Hayır | Projenin İngilizce adını belirtin. Bu proje SQL sorgusunu yürütür. Projenin ve buna bağlı hesaplama motorunun sorgulanan tablolar üzerinde okuma iznine sahip olması gerekir.
| Exprojectname |
user | Evet | Bir kullanıcının veya platformun AccessKey ID'si. Proxy modunu kullanırken platformun AccessKey ID'sini belirtin.
| kIBPT0 |
log_level | Hayır | Günlük düzeyi. Geçerli değerler:
| DEBUG |
password | Evet | Belirtilen kullanıcı için AccessKey Secret.
| Cy****r2T |
delegation_uid | Hayır | Proxy modunda bu parametre taklit edilecek Dataphin kullanıcısını belirtir. Proxy yapılan Dataphin kullanıcısı için seçilen account_type değerine göre ilgili hesap kimliğini sağlamalısınız. Bu parametrenin ayarlanması proxy modunu etkinleştirir. | 999***999 |
account_type | Hayır | Kimlik doğrulama için proxy modunu kullanırken proxy yapılan kullanıcının hesap türünü belirtmeniz gerekir.
Not
| USER_ID |
connect_timeout | Hayır | Saniye cinsinden bağlantı edinme zaman aşımı.
| 10 |
engine | Hayır | Oturumda veya bağlantı dizesinde project_name ile belirtilen proje için hesaplama motoru. Hadoop hesaplama motoru için varsayılan motor Hive'dır ancak bu parametreyi kullanarak Impala veya Spark olarak ayarlayabilirsiniz. Motor türü hesaplama motorunda önceden yapılandırılmış olmalıdır. Belirtilen motor proje tarafından desteklenmiyorsa bu ayar yoksayılır ve bir uyarı döndürülür. Geçerli değerler:
Not Bir veri kaynağına erişirken bu parametre yoksayılır. | MaxCompute |
acceleration_source | Hayır | Hızlandırma kaynağını belirtir. Kiracı içindeki herhangi bir hızlandırma kaynağının kodunu seçebilirsiniz. | starrocks_code |
acceleration_resource_group | Hayır | Hızlandırma kaynak grubu. Seçilen hızlandırma kaynağı için yapılandırılmış bir kaynak grubunu seçebilirsiniz. | starrocks_resource_group |
Kimlik doğrulama modları
Basit mod
Kullanıcı adını kullanıcının AccessKey ID'sine ve parolayı kullanıcının AccessKey Secret'ına ayarlayın. Bu işlem bağlantının söz konusu kullanıcı olarak kimliğini doğrular. AccessKey'inizi görüntülemek için bkz. Dataphin OpenAPI AccessKey Yönetimi.
JDBC sürücüsü aracılığıyla Dataphin'e eriştiğinizde Dataphin AccessKey'i doğrular ve istenen kaynaklar veya SQL ifadeleri için kullanıcıyı yetkilendirir. Ardından Dataphin SQL ifadesini o kullanıcı olarak yürütür.
Proxy modu
Proxy modunu kullanmadan önce bu özelliği etkinleştirmek ve yapılandırmak için Dataphin İşletim ve Bakım ekibiyle iletişime geçmeniz gerekir.
Proxy modu genellikle Dataphin ile sistem düzeyinde entegrasyonlar için kullanılır. Bu yöntem bireysel kullanıcılar için AccessKey dağıtımını veya yapılandırmasını önler. İşlemlerin o kullanıcının izinlerine göre yetkilendirilmesini sağlamak için bağlantı dizesinde (JDBC URL) proxy yapılacak kullanıcıyı belirtebilirsiniz. Platform düzeyindeki bir AccessKey yüksek ayrıcalıklara sahiptir ve herhangi bir kullanıcıyı proxy yapabilir. Örneğin istemci bir platform AccessKey'i kullanıyorsa userA bağlanırken delegation_uid=userA olarak ayarlayın. Dataphin ardından bağlantı için userA kimliğini taklit eder ve izin kontrollerini o kullanıcının profiline göre gerçekleştirir.
Dataphin sürücüsü
com.aliyun.dataphin.jdbc.DataphinDriver
API | Açıklama | Tanım |
connect | Bir veritabanı bağlantısı kurar. | |
acceptsURL | URL'nin desteklenip desteklenmediğini denetler. | |
com.aliyun.dataphin.jdbc.DataphinConnection
API | Açıklama | Tanım |
createStatement | Bir Statement nesnesi oluşturur. | |
prepareStatement | Bir PreparedStatement nesnesi oluşturur. | |
com.aliyun.dataphin.jdbc.DataphinStatement
API | Açıklama | Tanım |
executeQuery | Bir SQL ifadesini yürütür ve bir ResultSet nesnesi döndürür. | |
setFetchSize | Tek bir toplu işte veritabanından alınacak satır sayısını belirtir. Bu parametre ayarlanmazsa veya 0 olarak ayarlanırsa varsayılan olarak 1000 kullanılır. | |
cancel |
| |
com.aliyun.dataphin.jdbc.DataphinPrepareStatement
API | Açıklama | Tanım |
executeQuery | Bir SQL ifadesini yürütür ve bir ResultSet nesnesi döndürür. | |
com.aliyun.dataphin.jdbc.DataphinResultSetMetaData
API | Açıklama | Tanım |
getColumnCount | Sonuç kümesindeki sütun sayısını alır. | |
getColumnName | Sonuç kümesindeki bir sütunun adını alır. | |
com.aliyun.dataphin.jdbc.ResultSet
API | Açıklama | Tanım |
next | İmleci | |
com.aliyun.dataphin.jdbc.DatabaseMetaData
API | Açıklama | Tanım |
getTables | Tablo bilgilerini alır.
| |
getColumns | Bir tablo için sütun bilgilerini alır.
| |
Örnekler
Dataphin JDBC sürücüsünü kullanarak katalog bilgilerini alabilirsiniz.
1. Tablaları listeleme
Bir projedeki fiziksel tabloları ve fiziksel görünümleri listeler.
Sözdizimi
SHOW TABLES
[FROM db_name]
[LIKE 'pattern']
Parametreler
db_name:
Dataphin proje adı: Projedeki fiziksel tabloları görüntüler.
Geliştirme projeleri ve veri blokları için _Dev son ekini açıkça eklemeniz gerekir.
db_name belirtilmezse bağlantı dizesinde belirtilen project_name varsayılan olarak kullanılır.
Sonuç
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. Tablo şemasını alma
Bir fiziksel tablonun veya fiziksel görünümün şemasını gösterir.
Sözdizimi
{DESCRIBE | DESC} table_name;
Bu komut yalnızca fiziksel tabloları ve fiziksel görünümleri destekler.
Parametreler
table_name: Bir fiziksel tablo veya fiziksel görünümün adı.
Sonuç
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sunucu tarafı bağlantı kontrolü
Maksimum bağlantı sayısı: Varsayılan değer 100'dür.
Bağlantı zaman aşımı: Varsayılan değer 288000 saniyedir (2 saat). Kurulan bir bağlantı bu süre boyunca boşta kalırsa otomatik olarak kesilir. Kesilen bağlantıda bir işlem gerçekleştirmeye çalışırsanız hata veya kapatma istisnası döndürülür. Bu durum JDBC URL'sindeki
Connection_Idle_Timeoutparametresine karşılık gelir.
MaxCompute'deki JDBC görevleri için meta veriler
Bir JDBC görevi Dataphin'den bir MaxCompute yürütme örneğine gönderildiğinde gönderimde aşağıdaki meta veriler yer alır:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kullanıcı ortamı bilgileri. Buna Java SDK sürümü, Java sürümü, IP adresi ve cihaz MAC bilgileri dahildir. Örnek:
|
Bu bilgileri MaxCompute faturalarını analiz etmek ve iş sürelerini görüntülemek gibi kullanım senaryolarında kullanabilirsiniz. Daha fazla bilgi için bkz. MaxCompute projelerinin en yüksek maliyetli hesaplarının ve zaman alan işlerinin istatistiklerini toplama.
