Databricks JDBC ドライバーのドライバー機能の設定

この記事では、Databricks JDBC ドライバーの特殊および高度なドライバー機能設定を構成する方法について説明します。

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

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

従来の Spark JDBC ドライバーは、ANSI SQL-92 言語で SQL クエリを受け入れ、クエリをサーバーに送信する前に Databricks SQL 言語に変換します。 ただし、アプリケーションで Databricks SQL が直接生成される場合、またはアプリケーションが Azure Databricks 固有の ANSI 以外の SQL-92 標準 SQL 構文を使用する場合、Databricks は接続構成として UseNativeQuery=1 を設定することを推奨します。 この設定を使用すると、ドライバーは SQL クエリを Azure Databricks に逐語的に渡します。

既定のカタログとスキーマ

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

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

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

JDBC での Arrow シリアル化

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

JDBC でのCloud Fetch

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

クエリ結果は、最大 20 MB の Arrow シリアル化ファイルとして、内部 DBFS の保存場所にアップロードされます。 クエリの完了後にドライバーがフェッチ要求を送信すると、Azure Databricks は、アップロードされたファイルに Shared Access Signature を生成して返します。 JDBC ドライバーは、この URL を使用して、DBFS から直接、結果をダウンロードします。

Cloud Fetch は、1 MB を超えるクエリ結果に対してのみ使用されます。 それより小さなクエリ結果は Azure Databricks から直接取得されます。

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

クラウド フェッチ アーキテクチャの詳細については、「BI ツールを使用した広帯域接続の実現方法」を参照してください。

ログの有効化

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

詳細については、Databricks JDBC ドライバー ガイドConfiguring Logging に関するセクションを参照してください。