10 連線到運算
本節涵蓋將 Oracle AI Data Platform 中的運算連接到其他商業智慧工具。
連線
您可以將 Oracle AI Data Platform 與 Oracle Analytics Cloud 或其他商業智慧工具連線。
您可以使用 AI 資料平台提供的自訂 JDBC 或 ODBC,從不同的商業智慧工具連線至 AI 資料平台。AI Data Platform 也支援來自第三方商業 BI 工具 (Tableau、Power BI) 或開源 BI 工具 (例如 DBeaver) 的連線。若要從這些工具連線,您需要 AI 資料平台中運算叢集的連線詳細資訊,您可以在「連線詳細資訊」頁籤中找到該詳細資訊。所需資訊會視您連線的產品而有所不同。

將 Oracle Analytics 連線至 Oracle AI Data Platform
您可以從 Oracle Analytics Cloud 執行處理連線至由 Oracle AI Data Platform 執行處理管理的目錄或表格。
若要建立從 Oracle Analytics 到 AI 資料平台的連線,您需要來自 AI 資料平台的連線檔案,以及來自 Analytics Cloud 的 API 金鑰。
取得 Oracle Analytics 連線組態檔
您必須從 Oracle AI Data Platform 執行處理下載 config.json 檔案,才能將其連線至 Oracle Analytics 。
下載 JDBC 驅動程式
您可以從「連線詳細資訊」頁籤下載 JDBC 驅動程式,然後針對不同的 BI 工具進行設定。
- 瀏覽至您的工作區,然後按一下運算。
- 按一下您要連線至 JDBC 相容 BI 工具的叢集,然後按一下連線。
- 按一下 Download JDBC Driver 。
設定 DBeaver
您必須先安裝 DBeaver 並準備從 Oracle AI Data Platform 下載的檔案,才能將它連線至 AI Data Platform 中的運算叢集。
- 下載並安裝 DBeaver 用戶端。您可以使用「社群」或「企業」版本,但必須至少有 22.x.DBeaver 可供 Windows、Mac OS X、Eclipse Plugin 以及 Linux 使用。
- 從下載 JDBC 驅動程式解壓縮檔案。
- 從解壓縮的檔案解壓縮
simbaSpark.zip驅動程式檔案。
使用 Spark Simba JDBC 驅動程式設定 DBeaver
您可以設定 DBeaver 連線至 Oracle AI Data Platform 中的運算叢集。
- 開啟 DBeaver。
- 按一下資料庫導覽器。
- 按一下動因管理程式。
- 按一下「新增」。
- 輸入 AI 資料平台作為動因名稱。
- 按一下程式庫 (Libraries) 。
- 按一下新增資料夾。
- 瀏覽至 sparkSimba.zip 擷取的位置。
- 按一下尋找類別 (Find Class) 。
- 選取確定。
- 將 Driver 類別設為 com.simba.spark.jdbc.Driver 。
- 按一下設定值。
- 將類別名稱 (Class Name) 設定為 com.simba.spark.jdbc.Driver 。
- 按一下確定。
在 DBeaver 中建立資料庫連線
若要將 DBeaver 連線至 Oracle AI Data Platform 中的運算叢集,您必須先在 DBeaver 中建立資料庫連線。
- 開啟 DBeaver。
- 按一下資料庫。
- 按一下新資料庫連線。
- 按一下全部。
- 選取 AI 資料平台。
- 按下一步。
- 輸入 JDBC 動因的 URL。您可以在 AI 資料平台中運算叢集的連線詳細資訊頁籤上找到 JDBC URL。
- 按一下完成。
使用 JDBC 將 DBeaver 連線至 Oracle AI Data Platform
設定 DBeaver 並與您的 Oracle AI Data Platform 建立資料庫連線之後,您就可以完成 DBeaver 與 AI Data Platform 之間的連線。
- 開啟 DBeaver。
- 按一下連線。
- 選擇使用授權權杖或 API 金鑰進行連線。
- 使用授權權杖進行連線
- 如果您沒有 DEFAULT 設定檔,請勿在 URL 中指定任何設定檔來使用記號。例如:
jdbc:spark://gateway.aidp.me-riyadh-1.oci.oraclecloud.com/default;SparkServerType=AIDP;httpPath=cliservice/cf18b4ef-b83e-41dd-82b6-8d391584f6c5URL 會開啟瀏覽器視窗。
登入建立 AI Data Platform 執行處理的租用戶。
如需詳細資訊,請參閱 Token-based Authentication for the CLI 。
- 如果您沒有 DEFAULT 設定檔,請勿在 URL 中指定任何設定檔來使用記號。例如:
-
使用 API 金鑰連線:在連線 URL 中使用
ociProfile=<profile_name>指定 OCI 設定檔。- 使用 API 金鑰驗證來連線至 AI 資料平台實例。
在連線 URL 中使用
ociProfile=<profile_name>指定 OCI 設定檔,即可使用 API 金鑰。例如,若要使用 OCI 設定檔名稱示範:jdbc:spark://gateway.aidp.me-riyadh-1.oci.oraclecloud.com/default;SparkServerType=AIDP;httpPath=cliservice/cf18b4ef-b83e-41dd-82b6-8d391584f6c5 ;ociProfile=Demo如需詳細資訊,請參閱必要的金鑰和 OCID 。
- 使用 API 金鑰驗證來連線至 AI 資料平台實例。
- 使用授權權杖進行連線
- DBeaver 建立一個連線以讀取描述資料,以及一個連線供所有其他作業使用。如果連線受到限制,您可以停用第二個連線,讓 DBeaver 對所有作業使用一個連線。
- 按一下偏好設定。
- 按一下通用。
- 按一下描述資料。
- 取消選取開啟描述資料讀取的個別連線。
SQL 敘述句執行 API
您可以使用「SQL 敘述句執行 API」,從外部應用程式、自動化或代理程式在運算叢集上執行唯讀 SQL 敘述句。
API 會直接傳回小型結果集的結果,或提供較大結果的暫時連結。SQL 敘述句執行 API 使用 Oracle Cloud Infrastructure 要求簽署。敘述句使用已認證呼叫程式的識別和權限執行。您可以提交陳述式、擷取其狀態與結果,以及取消執行中的陳述式。
- 狀態為「作用中」的已啟動運算叢集
- 運算叢集金鑰 (ID)。您可以在叢集的詳細資訊頁籤中,在「一般」資訊底下找到此資訊。
- 您叢集的閘道主機名稱。您可以在叢集的連線詳細資訊頁籤中,找到 JDBC 驅動程式或 ODBC 驅動程式的主機名稱。
- 您正在使用之 CLI 終端機或應用程式中的 OCI CLI 安全權杖設定檔。您可以執行
oci session authenticate --profile-name <profile-name>並遵循提示來登入。
如何設定連線值
請確定已在您設定 OCI CLI 的終端機或應用程式中設定環境的連線值。
export BASE_URI="https://<gateway-host>"
export COMPUTE_CLUSTER_KEY="<compute-cluster-key>"
export REGION="<region>"
export PROFILE="<oci-profile>"
export REQ_SUFFIX="$(date +%s)"export BASE_URI="https://dev1.gateway.dataflow.us-phoenix-1.oci.oc-test.com:443"
export COMPUTE_CLUSTER_KEY="12345a67-b89c-1d23-4567-ef8912345ghi"
export REGION="us-phoenix-1"
export PROFILE="MYPROFILE"
export REQ_SUFFIX="20261022-123456"SQL 敘述句 API 動作
若要針對 SQL 敘述句執行 API 執行動作,您必須從 Oracle Cloud Infrastructure CLI 呼叫端點。
您可以從使用 OCI CLI 設定的終端機或應用程式執行下列動作。
SQL 敘述句執行 API 要求選項
建立 SQL 敘述句執行 API 要求時,會使用下列要求欄位。
| 欄位 | 描述 |
|---|---|
statement |
(必要) 唯讀 SQL 敘述句。 |
wait_timeout |
選擇性。API 在傳回回應之前,等待敘述句完成的時間上限。 |
disposition |
指定 INLINE 或 EXTERNAL_LINKS。 |
row_limit |
對帳單保留的資料列數目上限。 |
byte_limit |
敘述句保留的位元組數目上限。 |
catalog |
選擇性。執行陳述式時使用的型錄。 |
schema |
選擇性。執行敘述句時所使用的綱要。 |
parameters |
選擇性。SQL 陳述式的已命名參數值陣列。 |
query_tags |
選擇性。用於識別與追蹤陳述式的鍵值標記。請指定不超過 20 個項目。 |
request_id |
選擇性。呼叫者提供的關聯或冪等 ID。僅針對相同的邏輯要求重複使用該值。 |
opc-request-id |
選擇性。追蹤要求的要求標頭。只能使用英文字母、數字、底線和連字號。 |
提交 SQL 陳述式
已將 SQL 敘述句送出至此 API 端點:
POST /20200129/computeClusters/<compute-cluster-key>/workbench/sql/statementswait_timeout 值:oci raw-request \
--target-uri "${BASE_URI}/20200129/computeClusters/${COMPUTE_CLUSTER_KEY}/workbench/sql/statements" \
--http-method POST \
--request-headers "$(printf '{"Content-Type":"application/json","opc-request-id":"sql-submit-%s","opc-retry-token":"sql-submit-%s"}' "$REQ_SUFFIX" "$REQ_SUFFIX")" \
--request-body '{"statement":"SELECT 1 AS api_smoke_test","wait_timeout":"10s","on_wait_timeout":"CONTINUE","format":"JSON_ARRAY","disposition":"INLINE","row_limit":100,"byte_limit":1048576}' \
--region "${REGION}" \
--auth security_token \
--profile "${PROFILE}" \
| tee /tmp/sql-submit.json \
| jq '{http_status:.status, statement_id:.data.statement_id, state:.data.status.state, result:.data.result.data_array, opc_request_id:.headers["opc-request-id"]}'{
"http_status": "200 OK",
"statement_id": "095865c4-27ce-41cc-99bb-67af1de760b2",
"state": "SUCCEEDED",
"result": [
[
"1"
]
],
"opc_request_id": "sql-submit-20261022-214855/FBBFDCB770BDEFBC654EAE933E45E811/6CD8518A6A62E6411552DBFEF5ECEAD7"
}wait_timeout 欄位指定 API 在傳回回應之前等待敘述句完成的時間長度。如果敘述句在指定的等待時間內完成,API 會傳回 200 OK 並包含敘述句結果。如果陳述式在此時間內未完成,API 會傳回 202 Accepted 並繼續執行陳述式。
您可以修改 jq 篩選,以顯示應用程式所需的回應欄位。此命令會將完整的 API 回應儲存在暫存檔 /tmp/sql-submit.json 中,供您複查以瞭解其他回應詳細資訊。
使用外部連結提交對帳單
oci raw-request \
--target-uri "${BASE_URI}/20200129/computeClusters/${COMPUTE_CLUSTER_KEY}/workbench/sql/statements" \
--http-method POST \
--request-headers '{"Content-Type":"application/json","opc-request-id":"req-sql-external-'"$REQ_SUFFIX"'","opc-retry-token":"retry-sql-external-'"$REQ_SUFFIX"'"}' \
--request-body "$(jq -nc --arg request_id "sql-external-$REQ_SUFFIX" '{
statement: "SELECT id, sha2(cast(id AS STRING), 256) AS hash FROM range(2000)",
wait_timeout: "30s",
on_wait_timeout: "CONTINUE",
format: "JSON_ARRAY",
disposition: "EXTERNAL_LINKS",
row_limit: 2000,
byte_limit: 1048576,
request_id: $request_id
}')" \
--no-retry \
--region "${REGION}" \
--auth security_token \
--profile "${PROFILE}" \
| tee /tmp/sql-external-submit.json \
| jq '(.data.result // {}) as $result |
{
http_status: .status,
statement_id: .data.statement_id,
state: .data.status.state,
disposition: .data.manifest.disposition,
first_chunk_index: ($result.external_links[0].chunk_index // null),
first_chunk_row_count: ($result.external_links[0].row_count // null),
next_chunk_index: $result.next_chunk_index,
external_link_count: (($result.external_links // []) | length),
truncated: .data.manifest.truncated,
opc_request_id: .headers["opc-request-id"]
}'{
"http_status": "200 OK",
"statement_id": "661527ef-dd96-480f-b65a-ac63aad6b910",
"state": "SUCCEEDED",
"disposition": "EXTERNAL_LINKS",
"first_chunk_index": 0,
"first_chunk_row_count": 1000,
"next_chunk_index": 1,
"external_link_count": 1,
"truncated": false,
"opc_request_id": "req-sql-external-20261022-225359/6D4D256A0952BA3E8A21A8F4299E35FC/062DA0791BE4E344828CD8F4DE538FD6"
}在此範例中,暫時外部結果連結會儲存在 /tmp/sql-external-submit.json 中,且不會顯示在命令回應中。
附註:
請勿共用外部結果連結,或將它們儲存在原始碼、記錄檔、票證或其他可廣泛存取的位置。任何具有有效連結的人,在連結到期前,都可以存取相關的結果資料。如果 truncated 為 true,傳回的結果會達到指定的資料列限制或位元組限制。
設定 statement_id
statement_id。您可以在送出敘述句時設定 statement_id,如下所示:export STATEMENT_ID="095865c4-27ce-41cc-99bb-67af1de760b2"
echo "${STATEMENT_ID}"statement_id,如下所示:export STATEMENT_ID="$(jq -r '.data.statement_id' /tmp/sql-submit.json)"要求 SQL 敘述句狀態
statement_id 來擷取其狀態:GET /20200129/computeClusters/<compute-cluster-key>/workbench/sql/statements/<statement-id>下列範例使用陳述式的 statement_id 擷取陳述式狀態:
oci raw-request \
--target-uri "${BASE_URI}/20200129/computeClusters/${COMPUTE_CLUSTER_KEY}/workbench/sql/statements/${STATEMENT_ID}" \
--http-method GET \
--request-headers "$(printf '{"opc-request-id":"sql-status-%s"}' "$REQ_SUFFIX")" \
--region "${REGION}" \
--auth security_token \
--profile "${PROFILE}" \
| jq '{http_status:.status, statement_id:.data.statement_id, state:.data.status.state, error:.data.status.error, code:.data.code, message:.data.message, opc_request_id:.headers["opc-request-id"]}'{
"http_status": "200 OK",
"statement_id": "095865c4-27ce-41cc-99bb-67af1de760b2",
"state": "SUCCEEDED",
"error": null,
"code": null,
"message": null,
"opc_request_id": "sql-status-20261022-223517/A80E5E3A0BE5C2673C45E76C5A076B5F/890C178EA4CE5BC332681A546D3FB072"
}PENDINGRUNNINGSUCCEEDEDFAILEDCANCELLED
202 Accepted 的陳述式,擷取狀態,直到陳述式達到終端機狀態為止:SUCCEEDED、FAILED 或 CANCELLED。
要求對帳單結果
敘述句完成時,您可以使用 statement_id 擷取其結果,並使用下列端點擷取結果 chunk-index:
GET /20200129/computeClusters/<compute-cluster-key>/workbench/sql/statements/<statement-id>/result/chunks/<chunk-index>設定 chunk-index,以決定呼叫端點時要擷取的結果。chunk-index (共 0) 會擷取第一個結果。您可以檢查回應中的 next_chunk_index,決定下一個結果的 chunk-index。如果 next_chunk_index 是 null,這表示沒有其他的結果區塊。
export CHUNK_INDEX="0"
export REQ_SUFFIX="$(date +%s)"您可以使用 row_limit 和 byte_limit 來控制服務保留和傳回的結果資料。當達到其中一個限制時,回應可以指示結果被截斷。成功的敘述句並不表示所有的來源資料列都保留在結果中。
此範例示範對陳述式結果的要求:
oci raw-request \
--target-uri "${BASE_URI}/20200129/computeClusters/${COMPUTE_CLUSTER_KEY}/workbench/sql/statements/${STATEMENT_ID}/result/chunks/${CHUNK_INDEX}" \
--http-method GET \
--request-headers "$(printf '{"opc-request-id":"sql-result-chunk-%s"}' "$REQ_SUFFIX")" \
--region "${REGION}" \
--auth security_token \
--profile "${PROFILE}" \
| jq '(.data.result // .data) as $result |
{
http_status: .status,
statement_id: .data.statement_id,
chunk_index: $result.chunk_index,
row_count: $result.row_count,
row_offset: $result.row_offset,
result: $result.data_array,
next_chunk_index: $result.next_chunk_index,
external_link_count: (($result.external_links // []) | length),
code: .data.code,
message: .data.message,
opc_request_id: .headers["opc-request-id"]
}'上述範例的回應如下所示:
{
"http_status": "200 OK",
"statement_id": null,
"chunk_index": 0,
"row_count": 1,
"row_offset": 0,
"result": [
[
"1"
]
],
"next_chunk_index": null,
"external_link_count": 0,
"code": null,
"message": null,
"opc_request_id": "sql-result-chunk-20261022-224623/A6702BBF95AEA1AA6D96EFA256B1062B/86AA007BC0A3E6824814EE1A7A246775"
}陳述式完成時,回應會包含陳述式狀態與結果中繼資料。如果您為 disposition 指定 INLINE ,服務就會傳回回應中的結果資料。使用 INLINE 可讓應用程式立即處理小量結果。如果您指定 EXTERNAL_LINKS ,服務會儲存結果並傳回暫時連結,而不是將結果資料包含在回應中。若要取得大量結果,請使用 EXTERNAL_LINKS 。
data_array– 以內嵌方式傳回結果時的結果資料。當您使用 EXTERNAL_LINKS 時,此值為空值。external_links– 使用 EXTERNAL_LINKS 時,結果資料的暫時連結。row_count和byte_count– 傳回的結果區塊中的列數和位元組數。next_chunk_index– 有更多結果資料時,下一個結果區塊的索引。truncated– 指示服務是否只保留部分結果,因為已達到要求的資料列或位元組限制。expires_at– 保留結果資料與暫時外部連結到期的時間。
取消提交的對帳單
您可以取消正在執行的陳述式。您嘗試取消的對帳單需要 statement_id。
POST /20200129/computeClusters/<compute-cluster-key>/workbench/sql/statements/<statement-id>/canceloci raw-request \
--target-uri "${BASE_URI}/20200129/computeClusters/${COMPUTE_CLUSTER_KEY}/workbench/sql/statements/${STATEMENT_ID}/cancel" \
--http-method POST \
--request-headers "$(printf '{"Content-Type":"application/json","opc-request-id":"sql-cancel-%s"}' "$REQ_SUFFIX")" \
--request-body '{}' \
--region "${REGION}" \
--auth security_token \
--profile "${PROFILE}" \
| jq '{http_status:.status, statement_id:.data.statement_id, cancel_state:.data.cancel_state, state:.data.status.state, error:.data.status.error, code:.data.code, message:.data.message, opc_request_id:.headers["opc-request-id"]}'{
"http_status": "200 OK",
"statement_id": "9b8ca043-5620-469a-b07c-51d5b99b9963",
"cancel_state": "COMPLETED",
"state": "CANCELED",
"error": null,
"code": null,
"message": null,
"opc_request_id": "sql-cancel-20261022-231732/1BA0029F78EFABC8F3A7D7D8F52E278F/CFB5C5994AF3861143602D08794A2628"
}取消完成後,API 會傳回 200 OK。回應包含對帳單 ID 與狀態 CANCELED。
statement_id 擷取對帳單狀態來確認取消:oci raw-request \
--target-uri "${BASE_URI}/20200129/computeClusters/${COMPUTE_CLUSTER_KEY}/workbench/sql/statements/${LONG_STATEMENT_ID}" \
--http-method GET \
--request-headers "$(printf '{"opc-request-id":"req-sql-canceled-status-%s"}' "$REQ_SUFFIX")" \
--no-retry \
--region "${REGION}" \
--auth security_token \
--profile "${PROFILE}" \
| jq '{http_status:.status, statement_id:.data.statement_id, state:.data.status.state, cancel_requested:.data.cancel_requested, error:.data.status.error, opc_request_id:.headers["opc-request-id"]}'{
"http_status": "200 OK",
"statement_id": "9b8ca043-5620-469a-b07c-51d5b99b9963",
"state": "CANCELED",
"cancel_requested": true,
"error": null,
"opc_request_id": "req-sql-canceled-status-20261022/727A96500CCB1BBCF311B91390F7370C/9231C1802E3466B9AF5FBDEA56D0A9EA"
}指定目錄或綱要
當您提交 SQL 陳述式時,可以指定目錄、綱目或兩者。您在要求中指定的值會置換目前的梯次環境定義。指定目錄和綱要,以在特定目錄和綱要中執行敘述句。
{
"statement": "SELECT * FROM orders LIMIT 10",
"catalog": "sales_catalog",
"schema": "reporting",
"wait_timeout": "10s",
"on_wait_timeout": "CONTINUE",
"format": "JSON_ARRAY",
"disposition": "INLINE"
}您只能指定 catalog 來選取目錄。若要確保敘述句使用特定的綱要,請同時指定 catalog 和 schema。
您只能指定 schema 來選取目前目錄中的綱要。當您省略 catalog 時,也可以指定合格的綱要名稱,例如 sales_catalog.reporting。
如果您未指定 catalog 或 schema,則敘述句會使用目前的階段作業目錄和綱要。如果指定的目錄或綱要不存在,或呼叫者沒有存取權,則敘述句可以完成,狀態為 FAILED。檢查每個已完成敘述句回應中的 status.state 和 status.error。無效的目錄或綱要欄位語法會傳回 400 Bad Request。
具名參數
您可以在 SQL 陳述式中使用具名參數。使用冒號,後面接著參數名稱 (例如 :id),在陳述式中指定參數。不支援位置參數,例如 ?。在 parameters 陣列中指定參數值。每個參數包含下列欄位:
| 欄位 | 描述 |
|---|---|
name |
(必要) 不含冒號 (:) 前置碼的參數名稱。 |
value |
(必要) 參數值。提供值作為字串。 |
type |
選擇性。參數值的類型提示。 |
:id 和 :name 的值:{
"statement": "SELECT :id AS id, :name AS name",
"parameters": [
{
"name": "id",
"value": "42",
"type": "INT"
},
{
"name": "name",
"value": "example",
"type": "STRING"
}
],
"wait_timeout": "10s",
"on_wait_timeout": "CONTINUE",
"format": "JSON_ARRAY",
"disposition": "INLINE"
}API 支援下列參數類型提示:- 布林值:布林值
- 整數:BYTE、TINYINT、SHORT、SMALLINT、INT、INTEGER、LONG、BIGINT
- 數值:FLOAT、DOUBLE、DECIMAL、NUMBER
- 日期與時間:DATE,TIMESTAMP,TIMESTAMP_NTZ
- 字元:STRING、CHAR、VARCHAR
SQL 敘述句執行 API 回應疑難排解
| 回應 | 解決方案 |
|---|---|
400 Bad Request |
請確定要求包含支援的唯讀敘述句和有效的要求值。 |
401 或 403 |
請檢查 OCI 認證以及您對運算叢集和查詢資料的權限。 |
404 Not Found |
請檢查區域、運算叢集金鑰、呼叫者識別以及敘述句 ID。 |
503 Service Unavailable |
請等待運算叢集作用中,然後重試。 |
使用 Spark Connect 連線至外部應用程式
您可以使用 Spark Connect 從支援的 Python 或 Java 應用程式,在 Oracle AI Data Platform 運算叢集上執行 Spark 程式碼。
當叢集執行您的 DataFrame 作業和 Spark SQL 查詢時,您可以從本機 IDE 或外部應用程式進行工作。例如,您可以在本機開發資料轉換、針對叢集可用的資料執行資料轉換,以及在應用程式中擷取結果。
- 狀態為「作用中」的運算叢集。
- 您正在使用之叢集和資料的 USE 權限或更高權限。
- 對連接埠 443 上 Spark Connect 叢集主機名稱的網路存取。
- 運算叢集金鑰 (ID)。您可以在叢集的詳細資訊頁籤中,在「一般」資訊底下找到此資訊。
- 您叢集的閘道主機名稱。您可以在叢集的連線詳細資訊頁籤中,找到 JDBC 驅動程式或 ODBC 驅動程式的主機名稱。
- OCI 認證設定檔和相容的 Spark Connect 從屬端。
AI 資料平台支援 Python 和 Java 用戶端,並且對每個用戶端都具有下列需求:
| 客戶 | 需求 |
|---|---|
| Python | Python 3。9 – 3.11,PySpark 連接 3.5.1 |
| Java | JDK 17、Maven 3.8 或更新版本、Spark Connect JVM 從屬端 3.5.1 |
使用 Python 用戶端連線至 Spark Connect
此 Python 範例包含向 OCI 認證以及建立遠端 Spark 階段作業所需的連線設定。
附註:
提供的範例會停用文件 Spark 3.5.1 從屬端的可重新連附執行:spark.client.disable_reattachable_execute() 適應範例時保留此設定。Spark Connect 疑難排解
提供的表格列出設定 Spark Connect 連線至 Oracle AI Data Platform 時可能會遇到的常見問題,並提供可能的原因。
| 發生問題 | 要檢查什麼 |
|---|---|
| 應用程式無法連線 | 確認叢集為作用中狀態,而且您的環境可以連線連接埠 443 上的閘道主機名稱。 |
| 驗證失敗 | 檢查 OCI 組態檔路徑、設定檔名稱以及證明資料。重新整理過期的階段作業證明資料。 |
| 授權失敗,或找不到資源 | 檢查主機名稱和叢集金鑰。確認啟用租用戶,以及使用叢集的權限。 |
| 查詢無法存取表格 | 檢查目錄、綱要和表格名稱,並確認認證的識別具有資料的存取權。 |
Python 報告了遺失的 pyspark 或 oci 模組
|
安裝提供的相依性,並使用 .venv/bin/python 執行範例。
|
| Python 會載入非預期的 Spark 版本 | 將記錄的指令與 PYTHONPATH 和 SPARK_HOME 一起移除。 |
| Java 報告遺漏相依性或不相容的程式庫 | 請依照 Java 組合隨附的設定指示,並使用其指定的相依性版本。 |


