メインコンテンツまでスキップ

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

注記

この記事は、Databricks JDBC Simba ドライバーに適用されます。 Databricks が開発した JDBC ドライバーについては、「 Databricks JDBC ドライバー (OSS)」を参照してください。

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

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

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

レガシーSpark JDBCドライバーは、ANSI SQL-92言語のSQLクエリーを許可しており、クエリーをサーバーに送信する前にDatabricks SQL言語に変換します。ただし、アプリケーションがDatabricks SQLを直接生成する場合、またはアプリケーションがDatabricksに固有の非ANSI SQL-92標準SQL構文を使用する場合、Databricksでは接続構成としてUseNativeQuery=1を設定することをお勧めしています。この設定を使用すると、ドライバーはSQLクエリーをそのままDatabricksに渡します。

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

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

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

大規模なクエリー結果を抽出するときに最高のパフォーマンスを実現するには、以下の最適化が含まれている最新バージョンのJDBCドライバーを使用してください。

JDBC での矢印のシリアル化

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

JDBC での Cloud Fetch

JDBCドライバーバージョン2.6.19以降は、Databricksデプロイメントでセットアップされたクラウドストレージを通じてクエリー結果を取得する機能であるCloud Fetchがサポートされています。

クエリ結果は、最大 20 MB の矢印シリアル化ファイルとして内部 DBFS ストレージの場所に アップロードされます。 クエリの完了後にドライバーがフェッチ要求を送信すると、Databricks はアップロードされたファイルに対して 署名付き URL を生成して返します。 その後、JDBC ドライバーは URL を使用して、DBFS から直接結果をダウンロードします。

Cloud Fetchは、1 MBを超えるクエリー結果にのみ使用されます。結果が小さい場合、Databricksから直接取得されます。

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

Cloud Fetch は E2 ワークスペースでのみ使用できます。 また、対応する Amazon S3 バケットでバージョニングが有効になっていない必要があります。 バージョニングを有効にしている場合でも、 詳細設定の手順に従って Cloud Fetch を有効にできます。

Cloud Fetchアーキテクチャの詳細については、「BIツールで広帯域幅接続を実現した方法」をご覧ください。

高度な構成

S3DBFSルート Databricksで バケット バージョニング を有効にしている場合、アップロードされたクエリ結果の古いバージョンをガベージコレクション できません。最初に、アップロードされたクエリ結果の古いバージョンをパージする S3 ライフサイクルポリシーを設定することをお勧めします。

ライフサイクルポリシーを設定するには、以下の手順を実行します。

  1. AWSコンソールで、 S3 サービスに移動します。
  2. ワークスペースのルートストレージに使用する S3 バケット をクリックします。
  3. 管理 」タブを開き、「 ライフサイクルルールを作成する 」を選択します。
  4. ライフサイクルルール名 として任意の名前を選択します。
  5. プレフィックスフィールドは空のままにしておきます。
  6. ライフサイクルルールのアクション 」で「 オブジェクトの最新ではないバージョンを完全に削除する 」を選択します。
  7. オブジェクトが最新バージョンでなくなってからの日数 」で値を設定します。ここでは値1を使用することをお勧めします。
  8. ルールを作成する 」をクリックします。

ライフサイクルポリシー

ログ記録を有効にする

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

詳細については、『 Databricks JDBC Driver Guide』のConfiguring Loggingセクションを参照してください。