Databricks JDBC Driver (Simba) のドライバー機能の設定

このページは、バージョン 3 より前のバージョンの Simba JDBC Driver (Legacy) に適用されます。 Databricks では、 Databricks JDBC Driver for JDBC 接続への移行を強くお勧めします。 これには、Unity カタログ メトリック ビューのサポート、複数の SQL ステートメントにまたがるトランザクション、ストアド プロシージャ、大規模な結果の取得の高速化、組み込みのクライアント テレメトリなどの機能強化が含まれています。

このページでは、 Databricks JDBC Driver の特別な高度なドライバー機能設定を構成する方法について説明します。

Databricks JDBC ドライバーには、次の特殊で高度なドライバー機能設定が用意されています。

JDBC での ANSI SQL-92 クエリのサポート

従来の Spark JDBC ドライバーは、ANSI SQL-92 言語で SQL クエリを受け入れ、それらを Databricks SQL に変換してからサーバーに送信します。

アプリケーションで Databricks SQL が直接生成される場合、またはAzure Databricksに固有の ANSI SQL-92 以外の構文を使用している場合は、接続構成で UseNativeQuery=1 を設定します。 この設定は、SQL クエリを翻訳なしでAzure Databricksするように逐語的に渡します。

デフォルトのカタログとスキーマ

デフォルトのカタログとスキーマを指定するには、JDBC 接続 URL に ConnCatalog=<catalog-name>;ConnSchema=<schema-name> を追加します。

追跡用のクエリ タグ

Important

この機能は、プライベート プレビューにあります。 アクセス権を要求するには、アカウント チームにお問い合わせください。

追跡と分析のために、SQL クエリにキー値タグをアタッチします。 クエリタグは、クエリの識別と分析のために system.query.history テーブルに表示されます。

接続にクエリ タグを追加するには、JDBC 接続 URL に ssp_query_tags パラメーターを含めます。

jdbc:databricks://<server-hostname>:443;httpPath=<http-path>;ssp_query_tags=key1:value1,key2:value2

クエリ タグをコンマ区切りのキーと値のペアとして定義します。各キーと値はコロンで区切られます。 たとえば、「 key1:value1,key2:value2 」のように入力します。

JDBCで大きなクエリ結果を抽出する

大きなクエリ結果を抽出するときに最高のパフォーマンスを得るには、次の最適化を含む最新バージョンの JDBC ドライバーを使用します。

JDBC での矢印のシリアル化

JDBC ドライバー バージョン 2.6.16 以降では、 Apache Arrow を使用した最適化されたクエリ結果のシリアル化形式がサポートされています。

JDBC での Cloud Fetch

JDBC ドライバー バージョン 2.6.19 以降では、Cloud Fetch がサポートされています。Cloud Fetch は、Azure Databricks デプロイで構成されたクラウド ストレージを介してクエリ結果をフェッチする機能です。

クエリを実行すると、Azure Databricksワークスペースのクラウド ストレージに、最大 20 MB の方向シリアル化ファイルとして結果が格納されます。 クエリが完了すると、ドライバーはフェッチ要求を送信し、Azure Databricksは結果ファイル共有アクセス署名 (SAS) URL を返します。 その後、ドライバーはこれらの URL を使用して、Azureストレージから直接結果をダウンロードします。

クラウド フェッチは、1 MB を超えるクエリ結果にのみ適用されます。 ドライバーは、Azure Databricksから直接小さな結果を取得します。

Azure Databricks、24 時間後に削除対象としてマークし、24 時間後に完全に削除することで、蓄積されたファイルを自動的にガベージ コレクションします。

ネットワーク前提条件

ネットワークがプライベートの場合は、Cloud Fetch が機能するように次の設定を構成する必要があります。

Cloud Fetch を無効にするには、接続構成で EnableQueryResultDownload=0 を設定します。

低速なダウンロードを診断する

LogLevel4 (INFO) に設定し、ログ フォルダーの完全なパスにLogPathして、Cloud Fetch のダウンロード速度メトリックを確認します。 ドライバーはチャンクごとのダウンロード速度をログに記録するため、結果セットが大きいと複数のログ行が生成されます。 また、速度が約 1 MB/秒を下回ると、ドライバーによって警告が記録されます。 この機能は、2025 年 12 月以降にリリースされた JDBC (Simba) ドライバー バージョンで利用できます。

ダウンロードが遅いかストールしている場合、ドライバーがすべての結果ファイルのダウンロードを完了する前に、SAS トークンの有効期限が切れる可能性があります。 クライアントとAzure Blob Storage間の帯域幅調整またはネットワークの輻輳を確認します。

ログ記録を有効にする

JDBC ドライバーでログ記録を有効にするには、 LogLevel プロパティを 1 (重大なイベントのみ) と 6 (すべてのドライバー アクティビティ) の間の値に設定します。 LogPath プロパティを、ログ ファイルを保存するフォルダーの完全なパスに設定します。

詳細については、Databricks JDBC ドライバー ガイドの 「ログ記録の構成」 を参照してください。