全部產品
Search
文件中心

MaxCompute:概述

更新時間:Jun 19, 2024

MaxCompute JDBC驅動是MaxCompute提供的Java資料庫連接(Java Database Connectivity)介面。您可以通過標準的JDBC介面基於MaxCompute執行海量資料的分散式運算查詢。MaxCompute JDBC驅動還可以用於串連MaxCompute和支援JDBC的工具。

JDBC使用說明

注意事項

  • 通過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()方法擷取所有列的中繼資料。