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

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

この記事は、次の Databricks ODBC ドライバーの記事の情報を補足するものです。

Databricks ODBC ドライバーの Databricks 接続を構成するには、コンピュート リソース設定、認証設定、および次のドライバー機能設定のいずれかを、ODBC データソース名 (DSN) または DSN なしの接続文字列に結合する必要があります。

DSN 接続文字列と DSN なしの接続文字列のどちらを使用するかは、ターゲット アプリ、ツール、クライアント、SDK、または API の要件によって異なります。 DSN と DSN なしの接続文字列の例については、「 Databricks ODBC ドライバーの認証設定」を参照してください。

Datbricks ODBC ドライバーは、次の特別な高度なドライバー機能設定を提供します。

ODBCで初期スキーマを設定する

ODBCドライバーでは、接続構成としてSchema=<schema-name>を設定することでスキーマを指定できます。これは、USE <schema-name>を実行した場合と同等です。

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

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

ODBCで大規模なクエリー結果を抽出する

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

ODBCでのArrowシリアライズ

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

ODBCでのCloud Fetch

ODBCドライバー バージョン 2.6.17 以降では、 Databricksデプロイメントで設定されたクラウド ストレージを通じてクエリ結果を取得する機能であるクラウド フェッチがサポートされています。

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

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

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

クラウド Fetch は、E2 ワークスペースでのみ使用できます。 また、対応する Amazon S3 バケットでバージョニングを有効にしないでください。 バージョニングを有効にしている場合でも、「 詳細設定」の手順に従ってクラウド Fetch を有効にすることができます。

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

高度な構成

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

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

  1. AWSコンソールで、S3サービスに移動します。

  2. ワークスペースのルートストレージとして使用するS3バケットをクリックします。

  3. 管理」タブを開き、「ライフサイクルルールを作成する」を選択します。

  4. ライフサイクルルール名として任意の名前を選択します。

  5. プレフィックスフィールドは空のままにしておきます。

  6. ライフサイクルルールのアクション」で「オブジェクトの最新ではないバージョンを完全に削除する」を選択します。

  7. オブジェクトが最新バージョンでなくなってからの日数」で値を設定します。ここでは値1を使用することをお勧めします。

  8. ルールを作成する」をクリックします。

ライフサイクルポリシー

ログ記録を有効にする

用の ドライバーでログ記録を有効にするには、関連するODBC WindowsODBCDSN の データソース アドミニストレーターで次のフィールドを設定します。

  • [Log Level] フィールドを [FATAL] に設定して、TRACE を介して重大なイベントのみをログに記録し、すべてのドライバー アクティビティをログに記録します。

  • ログ・パス 」フィールドに、ログ・ファイルを保存するフォルダーへのフル・パスを設定します。

  • 最大ファイル数 」フィールドに、保持するログ・ファイルの最大数を設定します。

  • 最大ファイル・サイズ 」フィールドに、各ログ・ファイルの最大サイズ (メガバイト単位) を設定します。

Windows 以外のマシンで ODBC ドライバーのログ記録を有効にするには、関連する DSN または DSN レス接続文字列で次のプロパティを設定します。

  • LogLevel プロパティを 1 から 6 に設定してすべてのドライバー アクティビティをログに記録する重大なイベントのみをログに記録します。

  • LogPath プロパティを、ログ ファイルを保存するフォルダーへの完全なパスに設定します。

  • LogFileCount プロパティーを、保持するログ・ファイルの最大数に設定します。

  • LogFileSize プロパティーを、各ログ・ファイルの最大サイズ (バイト単位) に設定します。

詳細については、 Databricks JDBCドライバー ガイドのセクション Configuring Logging Options on Windows および Configuring Logging Options on a Non-Windows Machine を参照してください。