Databricks JDBC ドライバー (Simba) のドライバー機能設定
このページは、バージョン 3 未満の Databricks JDBC ドライバー バージョンに適用されます。Databricks JDBC ドライバー バージョン 3 以上については、 「Databricks JDBC ドライバー」を参照してください。
このページでは、 Databricks JDBC ドライバーの特別な高度なドライバー機能設定を構成する方法について説明します。
Databricks JDBC ドライバーには、次の特殊で高度なドライバー機能設定が用意されています。
- JDBC での ANSI SQL-92 クエリのサポート
- デフォルトのカタログとスキーマ
- 追跡用のクエリタグ
- JDBCで大きなクエリ結果を抽出する
- JDBC でのArrowのシリアル化
- JDBC での Cloud Fetch
- 高度な設定
- ログ記録を有効にする
JDBC での ANSI SQL-92 クエリのサポート
従来の Spark JDBC ドライバーは、ANSI SQL-92 方言の SQL クエリを受け入れ、それをサーバーに送信する前に Databricks SQL に変換します。
アプリケーションが Databricks SQL を直接生成するか、Databricks 固有の非 ANSI SQL-92 構文を使用する場合は、接続構成でUseNativeQuery=1を設定します。この設定により、SQL クエリが変換されずにそのまま Databricks に渡されます。
デフォルトのカタログとスキーマ
デフォルトのカタログとスキーマを指定するには、JDBC接続URLにConnCatalog=<catalog-name>;ConnSchema=<schema-name>を追加します。
追跡用のクエリタグ
プレビュー
この機能はプライベートプレビュー段階です。アクセスをリクエストするには、アカウント チームにお問い合わせください。
追跡と分析の目的で、 SQLクエリに key-value タグを添付します。 クエリ タグは、クエリの識別と分析のために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 でのArrowのシリアル化
JDBC ドライバー バージョン 2.6.16 以降では、 Apache Arrow を使用した最適化されたクエリ結果のシリアル化形式がサポートされています。
JDBC での Cloud Fetch
JDBCドライバー バージョン 2.6.19 以降は、 Databricksデプロイメントで構成されたクラウド ストレージを通じてクエリ結果をフェッチする機能であるクラウド フェッチをサポートしています。
クエリを実行すると、Databricks は結果を最大 20 MB の Arrow シリアル化ファイルとして内部DBFS ストレージの場所にアップロードします。クエリが完了すると、ドライバーはフェッチ要求を送信し、Databricks はアップロードされたファイルへの署名済み URLを返します。ドライバーはこれらの URL を使用して、DBFS から直接結果をダウンロードします。
Cloud Fetch は、1 MB を超えるクエリ結果にのみ適用されます。 ドライバーは Databricks から小さな結果を直接取得します。
Databricks は蓄積されたファイルを自動的にガベージ コレクションし、24 時間後に削除対象としてマークし、さらに 24 時間後に完全に削除します。
Cloud Fetch には、バージョニングが有効になっていない E2 ワークスペースとAmazon S3バケットが必要です。 バージョニングが有効になっている場合は、クラウドフェッチを有効にするための高度な構成を参照してください。
Cloud Fetchアーキテクチャの詳細については、「BIツールで広帯域幅接続を実現した方法」をご覧ください。
高度な構成
S3DBFSルート で バケットのバージョン管理を 有効にすると、Databricks アップロードされたクエリ結果の古いバージョンをガベージ コレクションできません。まず、アップロードされたクエリ結果の古いバージョンを消去する S3 ライフサイクル ポリシーを設定します。
ライフサイクル ポリシーを設定するには:
- AWSコンソールで、 S3 サービスに移動します。
- ワークスペースのルートストレージに使用する S3 バケット をクリックします。
- [管理] タブを開き、 [ライフサイクル ルールの作成] をクリックします。
- ライフサイクル ルール 名を入力します。
- プレフィックスフィールドは空のままにしておきます。
- 「 ライフサイクルルールのアクション 」で「 オブジェクトの最新ではないバージョンを完全に削除する 」を選択します。
- オブジェクトが非最新になってからの日数 に値を設定します。Databricks では 1 日の使用を推奨しています。
- 「 ルールを作成する 」をクリックします。
ログ記録を有効にする
JDBC ドライバーでのログ記録を有効にするには、 LogLevelプロパティを1 (重大なイベントのみ) から6 (すべてのドライバー アクティビティ) までの値に設定します。LogPathプロパティを、ログ ファイルを保存するフォルダーの完全パスに設定します。
詳細については、 Databricks JDBCドライバー ガイドの「ログ記録の構成」を参照してください。