MaxCompute JDBC驅動是MaxCompute提供的Java資料庫連接(Java Database Connectivity)介面。您可以通過標準的JDBC介面基於MaxCompute執行海量資料的分散式運算查詢。MaxCompute JDBC驅動還可以用於串連MaxCompute和支援JDBC的工具。
JDBC使用說明
使用JDBC串連MaxCompute。詳情請參見使用說明。
使用JDBC串連商業智慧(BI)分析工具,對MaxCompute中的資料進行可視化分析,相關文檔如下:
使用JDBC串連資料庫管理工具,管理MaxCompute專案,相關文檔如下:
注意事項
通過MaxCompute JDBC驅動執行SQL並擷取結果,需要執行帳號滿足以下要求:
是專案空間的成員。
有專案空間的CreateInstance許可權。
有目標表的Select和Download許可權。
說明1.9及之前版本的MaxCompute JDBC驅動對每個查詢都會建立暫存資料表,並通過Tunnel從暫存資料表擷取結果。您使用這些版本的JDBC需要具備CreateTable許可權。
2.2及之後版本的MaxCompute JDBC驅動不再建立暫存資料表,直接通過Instance Tunnel擷取查詢結果,沒有CreateTable許可權要求限制。
MaxCompute許可權詳情請參見MaxCompute許可權。
MaxCompute提供了資料保護功能。當資料保護模式開啟時,您無法將資料轉移到專案空間之外。2.4之前版本的JDBC無法擷取
result set
。2.4及之後版本的JDBC可以獲得不超過READ_TABLE_MAX_ROW所定義行數的資料,詳情請參見專案空間操作。資料保護功能詳情請參見資料保護機制。MaxCompute 2.0資料類型版本支援較多資料類型,例如TINYINT、SMALLINT、DATETIME、TIMESTAMP、ARRAY、MAP和STRUCT等。您如果需要使用這些新類型,在執行SQL之前需要執行以下語句,開啟MaxCompute 2.0資料類型開關。詳情請參見資料類型版本說明。
set odps.sql.type.system.odps2=true
常見問題
如何查看MaxCompute JDBC驅動的日誌?
MaxCompute JDBC驅動的日誌預設放在驅動JAR包所在的同級目錄下,檔案名稱為jdbc.log。
如果代碼與驅動打包為一個Uber JAR,日誌將會在Uber JAR所在的同級目錄。
MaxCompute JDBC驅動的日誌記錄了調用JDBC介面的詳細資料,包括調用的類名、方法名、行數、參數和傳回值等。您可以使用這些資訊進行調試。
如何擷取MaxCompute Logview URL?
MaxCompute JDBC驅動是基於MaxCompute Java SDK的封裝。與MaxCompute用戶端、MaxCompute Studio以及DataWorks一樣,您通過MaxCompute JDBC驅動執行SQL時,會產生Logview URL。您可以通過Logview查看作業執行狀態、追蹤作業進度和擷取作業執行結果。Logview URL可以通過properties.log4j參數配置,預設列印到StdErr。
是否支援串連池與Auto-Commit?
MaxCompute提供REST服務,和傳統資料庫維持長串連的方式不同。MaxCompute JDBC驅動建立Connection是十分輕量的操作,無須針對MaxCompute JDBC刻意使用串連池。MaxCompute JDBC也支援使用串連池的情境。
MaxCompute不支援Transaction,每個查詢動作都會即時體現到服務端,即預設為Auto-Commit的行為。MaxCompute JDBC驅動不支援關閉Auto-Commit模式。
如何擷取分區欄位和類型的描述?
您可以通過
Connection.getMetadata()
方法擷取DatabaseMetaData對象,通過DatabaseMetaData的getColumns()
方法擷取所有列的中繼資料。