Databricks JDBC ドライバーのドライバー機能設定
この記事では、 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でのArrowシリアライズ
JDBC ドライバー バージョン 2.6.16 以降では、 Apache Arrow を使用する最適化されたクエリ結果シリアル化形式がサポートされています。
JDBCでのCloud Fetch
JDBCドライバーバージョン2.6.19以降は、Databricksデプロイメントでセットアップされたクラウドストレージを通じてクエリー結果を取得する機能であるCloud Fetchがサポートされています。
クエリー結果は、Arrowでシリアライズされた最大20 MBのファイルとして内部のDBFSストレージにアップロードされます。クエリー完了後にドライバーがフェッチ要求を送信すると、Databricksはアップロードされたファイルへの署名付きURL を生成して返します。JDBCドライバーは、そのURLを使用して、結果をDBFSから直接ダウンロードします。
Cloud Fetchは、1 MBを超えるクエリー結果にのみ使用されます。結果が小さい場合、Databricksから直接取得されます。
Databricksは、24時間後に削除対象としてマークされた蓄積ファイルを自動的にガベージコレクションします。これらのマークが付いたファイルは、さらに24時間後に完全に削除されます。
クラウド Fetch は、E2 ワークスペースでのみ使用できます。 また、対応する Amazon S3 バケットでバージョニングを有効にしないでください。 バージョニングを有効にしている場合でも、「 詳細設定」の手順に従ってクラウド Fetch を有効にすることができます。
Cloud Fetchアーキテクチャの詳細については、「BIツールで広帯域幅接続を実現した方法」をご覧ください。
高度な構成
DBFSルート で S3 バケットのバージョン管理 を有効にしている場合、Databricks はアップロードされたクエリ結果の古いバージョンのガベージ コレクションを実行できません。アップロードされたクエリ結果の古いバージョンをパージする S3 ライフサイクルポリシーを最初に設定することをお勧めします。
ライフサイクルポリシーを設定するには、以下の手順を実行します。
AWSコンソールで、S3サービスに移動します。
ワークスペースのルートストレージとして使用するS3バケットをクリックします。
「管理」タブを開き、「ライフサイクルルールを作成する」を選択します。
ライフサイクルルール名として任意の名前を選択します。
プレフィックスフィールドは空のままにしておきます。
「ライフサイクルルールのアクション」で「オブジェクトの最新ではないバージョンを完全に削除する」を選択します。
「オブジェクトが最新バージョンでなくなってからの日数」で値を設定します。ここでは値1を使用することをお勧めします。
「ルールを作成する」をクリックします。
ログ記録を有効にする
JDBC ドライバーでのログ記録を有効にするには、重要なイベントのみをログに記録するように1
から6
までのすべてのドライバー アクティビティをログに記録するようにLogLevel
プロパティを設定します。 LogPath
プロパティを、ログ ファイルを保存するフォルダーへの完全なパスに設定します。
詳細については、 Databricks JDBC Driver Guide』の Configuring Logging
セクションを参照してください。