10 Computeへの接続
この項では、Oracle AI Data Platformのコンピュートを他のビジネス・インテリジェンス・ツールに接続する方法について説明します。
接続
Oracle AI Data Platformは、Oracle Analytics Cloudまたはその他のビジネス・インテリジェンス・ツールと接続できます。
AIデータ・プラットフォームが提供するカスタムJDBCまたはODBCを使用して、様々なビジネス・インテリジェンス・ツールからAIデータ・プラットフォームに接続できます。AIデータ・プラットフォームでは、サード・パーティの商用BIツール(Tableau、Power BI)またはDBeaverなどのオープン・ソースBIツールからの接続もサポートされています。これらのツールから接続するには、AIデータ・プラットフォームでコンピュート・クラスタの接続詳細が必要です。この詳細は、「接続の詳細」タブにあります。必要な情報は、接続元の製品によって異なります。

Oracle AnalyticsをOracle AI Data Platformに接続
Oracle Analytics Cloudインスタンスから、Oracle AI Data Platformインスタンスによって管理されているカタログまたは表に接続できます。
Oracle AnalyticsからAI Data Platformへの接続を作成するには、AI Data Platformからの接続ファイルとAnalytics CloudからのAPIキーが必要です。
Oracle Analytics接続構成ファイルの取得
config.jsonファイルをOracle AI Data Platformインスタンスからダウンロードして、Oracle Analyticsに接続する必要があります。
Oracle Analyticsへの接続
Oracle Analyticsインスタンスから、Oracle AI Data Platformインスタンスによって管理されているカタログまたは表に接続できます。
手順に従い、接続の保存またはスキーマのリストに問題がある場合、クラスタの再起動が必要になる場合があります。
JDBCドライバのダウンロード
JDBCドライバは、「接続の詳細」タブからダウンロードして、様々なBIツール用に構成できます。
- ワークスペースに移動し、「コンピュート」をクリックします。
- JDBC互換BIツールに接続するクラスタをクリックし、「接続」をクリックします。
- 「JDBCドライバのダウンロード」をクリックします。
DBeaverの構成
DBeaverをインストールし、Oracle AI Data Platformからダウンロードしたファイルを準備してから、AI Data Platformのコンピュート・クラスタに接続する必要があります。
- DBeaverクライアントをダウンロードしてインストールします。CommunityまたはEnterpriseのいずれかのバージョンを使用できますが、少なくとも22.x.DBeaverは、Windows、Mac OS X、EclipseプラグインおよびLinuxでのみ使用可能です。
- 「JDBCドライバのダウンロード」からファイルを解凍します。
- 解凍されたファイルから、
simbaSpark.zipドライバ・ファイルを解凍します。
Spark Simba JDBCドライバを使用したDBeaverの構成
DBeaverを構成して、Oracle AI Data Platformのコンピュート・クラスタに接続できます。
- DBeaverを開きます。
- 「データベース・ナビゲータ」をクリックします。
- 「ドライバ・マネージャ」をクリックします。
- 「新規」をクリックします。
- 「ドライバ名」として「AIデータ・プラットフォーム」を入力します。
- 「ライブラリ」をクリックします。
- 「フォルダの追加」をクリックします。
- sparkSimba.zip抽出の場所を参照します。
- 「クラスの検索」をクリックします。
- Select 「OK」を選択します。
- ドライバ・クラスをcom.simba.spark.jdbc.Driverに設定します。
- 「設定」をクリックします。
- 「クラス名」をcom.simba.spark.jdbc.Driverに設定します。
- 「OK」をクリックします。
DBeaverでのデータベース接続の作成
DBeaverをOracle AI Data Platformのコンピュート・クラスタに接続するには、まずDBeaverでデータベース接続を作成する必要があります。
- DBeaverを開きます。
- 「データベース」をクリックします。
- 「新規データベース接続」をクリックします。
- 「すべて」をクリックします。
- 「AI Data Platform」を選択します。
- 「次へ」をクリックしてください。
- JDBCドライバーのURLを入力します。JDBC URLは、AIデータ・プラットフォームのコンピュート・クラスタの「接続の詳細」タブにあります。
- 「終了」をクリックします。
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データ・プラットフォーム・インスタンスが作成されたテナンシにサインインします。
詳細は、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は、メタデータを読み取るための接続と、他のすべての操作のための接続を作成します。接続に制限がある場合は、2番目の接続を無効にして、DBeaverがすべての操作に1つの接続を使用するようにできます。
- 「プリファレンス」をクリックします。
- 「共通」をクリックします。
- 「メタデータ」をクリックします。
- 「メタデータ読取り用に個別の接続を開く」の選択を解除します。
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 |
オプション。コール元提供の相関識別子または冪等性識別子。同じ論理リクエストに対してのみ値を再利用します。 |
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の場合、最初の結果が取得されます。次の結果のchunk-indexを確認するには、レスポンスのnext_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を使用すると、この値はNULLになります。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では、次のパラメータ・タイプのヒントがサポートされています。- BOOLEAN: BOOLEAN
- 整数: BYTE、TINYINT、SHORT、SMALLINT、INT、INTEGER、LONG、BIGINT
- 数値: FLOAT、DOUBLE、DECIMAL、NUMERIC
- 日付と時間: DATE、TIMESTAMP、TIMESTAMP_NTZ
- 文字: STRING、CHAR、VARCHAR
SQL文実行APIレスポンスのトラブルシューティング
| 応答 | 解決策 |
|---|---|
400 Bad Request |
リクエストに、サポートされている読取り専用文と有効なリクエスト値が含まれていることを確認します。 |
401または403 |
OCI認証と、コンピュート・クラスタおよび問合せ対象データの権限を確認します。 |
404 Not Found |
リージョン、コンピュート・クラスタ・キー、コール元IDおよび文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 Connect 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のトラブルシューティング
次の表に、Oracle AI Data PlatformへのSpark Connect接続の構成時に発生する可能性のある一般的な問題と、潜在的な原因を示します。
| 問題 | 確認対象 |
|---|---|
| アプリケーションが接続できません | クラスタがアクティブであり、環境がポート443のゲートウェイ・ホスト名に到達できることを確認します。 |
| 認証に失敗 | OCI構成ファイルのパス、プロファイル名および資格証明を確認します。期限切れのセッション資格証明をリフレッシュします。 |
| 認可に失敗したか、リソースが見つかりません | ホスト名とクラスタ・キーを確認します。テナンシの有効化およびクラスタを使用する権限を確認します。 |
| 問合せは表にアクセスできません | カタログ、スキーマおよび表名を確認し、認証済アイデンティティにデータへのアクセス権があることを確認します。 |
Pythonは、欠落しているpysparkまたはociモジュールを報告します
|
指定された依存関係をインストールし、.venv/bin/pythonを使用して例を実行します。
|
| Pythonが予期しないSparkバージョンをロードする | PYTHONPATHおよびSPARK_HOMEを削除して、ドキュメント化されたコマンドを使用します。 |
| Javaが依存性の欠落または互換性のないライブラリを報告する | Javaバンドルに付属する設定手順に従い、指定された依存性バージョンを使用します。 |


