Databricks: SELECT version() の実行を無効化するオプション
CData Databricks ドライバーに、接続確立時に SELECT version() クエリの実行を無効化するオプションが追加されました。この機能は、不要なクエリのオーバーヘッドを削減することで、高スループット環境でのパフォーマンスを向上させるために設計されています。
背景
デフォルトでは、CData Databricks ドライバーは接続ごとに SELECT version() クエリを1回実行し、SQL Warehouse がアクティブで応答可能な状態であることを確認します。これにより接続の信頼性が確保されますが、以下のような環境ではパフォーマンスに影響を与える可能性があります。
- 接続の確立頻度が高い環境
- 複数のスレッドが同時に実行される環境
- 接続速度が重要なパフォーマンス重視のアプリケーション
接続パフォーマンスの向上
SQL Warehouse の可用性チェックを無効化すると、以下のメリットがあります。
- 接続時間の短縮: version クエリ実行のオーバーヘッドを排除
- スループットの向上: マルチスレッドアプリケーションでの接続確立を高速化
- リソース使用量の削減: Databricks SQL Warehouse へのクエリ負荷を軽減
- スケーラビリティの強化: 多数の同時接続を確立する際のパフォーマンスを改善
設定方法
新しい CheckSQLWarehouseAvailability プロパティを False に設定すると、SELECT version() の実行を無効化できます。
接続文字列で以下のように設定します。
- プロパティ: CheckSQLWarehouseAvailability
- 型: Boolean
- デフォルト: True
- 場所: Advanced Properties
- 説明: 接続時に Databricks SQL Warehouse の可用性をチェックするかどうかを指定します
False に設定すると、ドライバーは SELECT version() クエリを実行しなくなり、接続時間が短縮されます。
接続文字列での設定
接続文字列に CheckSQLWarehouseAvailability プロパティを追加します。
jdbc:databricks://[ServerHostname]:443/[HTTPPath];Token=[PersonalAccessToken];CheckSQLWarehouseAvailability=False;
DSN およびその他のウィザードでの設定
ODBC 接続や接続ウィザードを持つその他のプラットフォームでは、UI でプロパティを追加します。
- (ODBC) ODBC データソースアドミニストレーターを開きます
- Databricks 接続を選択し、Configure/Edit などをクリックします
- Advanced セクションに移動します
- CheckSQLWarehouseAvailability を False に設定します
- OK/Save などをクリックして設定を保存します
実装例
JDBC 接続の例
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabricksConnection {
public static void main(String[] args) {
String url = "jdbc:databricks://your-server:443/your-http-path;" +
"Token=your-personal-access-token;" +
"CheckSQLWarehouseAvailability=False;";
try (Connection conn = DriverManager.getConnection(url)) {
// SELECT version() チェックなしで接続を確立
System.out.println("Connected successfully with optimized performance");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Python 接続の例
import jaydebeapi
# パフォーマンス最適化を適用した接続パラメータ
connection_url = "jdbc:databricks://your-server:443/your-http-path"
connection_properties = {
"Token": "your-personal-access-token",
"CheckSQLWarehouseAvailability": "False"
}
# 接続を確立
conn = jaydebeapi.connect(
"cdata.jdbc.databricks.DatabricksDriver",
connection_url,
connection_properties,
"path/to/cdata.jdbc.databricks.jar"
)
print("Connection established with enhanced performance")
conn.close()
ユースケース
この最適化は、以下のような場面で特に効果的です。
- ETL プロセス: 大量のデータを処理するアプリケーション
- マイクロサービス: 短期間の接続を頻繁に確立するアプリケーション
- 接続プーリング: 接続プールの初期化速度が重要な環境
- マルチテナントアプリケーション: 複数の同時ユーザーにサービスを提供するシステム
実際に試してみましょう
CData は、業界標準のドライバーを通じて、レポートツール、データベース、カスタムアプリケーションから Databricks へのシームレスな接続を実現します。BI、レポート、分析、ETL ツール、およびカスタムソリューションと Databricks データを簡単に統合できます。CData Databricks ドライバーの30日間無料トライアルをダウンロードして、今すぐお試しください。