データベース接続プール

接続プーリングを使用すると、Amazon RedshiftPostgreSQLSnowflake の各データベース言語で事前構成された接続プールを使用できます。

このオプションを使用すると、Looker は JDBC ドライバを介して接続プールを使用できます。データベース接続プールを使用すると、クエリのパフォーマンスが向上します。新しいクエリは新しいデータベース接続を作成する必要がなく、接続プールの既存の接続を使用できます。接続プール機能を使用すると、クエリの実行後に接続がクリーンアップされ、クエリ実行の終了後に再利用できるようになります。

接続プールを有効にするには、Database Connection Pooling Labs 機能を有効にします。Labs 機能が有効で、データベースで接続プールを構成済みで、上記の言語のいずれかを使用している場合、Looker は接続プールを使用します。

接続プールを使用する際の考慮事項:

  • 複数のユーザー属性値が同一である場合、複数のユーザーが接続プールを共有します。ユーザー属性値のセットで一意の値や異なる値を持つユーザーは、データベースへの接続時に一意の接続プールを使用します。

  • すべてのデータベース ノードの接続プールに接続できる接続の最大数は、データベースの [接続] ページの [最大接続数] フィールドの値によって制限されます。

  • 接続プールに対して発行される同時実行クエリ数が最大接続数を超えると、前のクエリが実行されるまで、クエリは Looker にキューイングされます。

  • JDBC 接続文字列ごとに一意の接続プールが作成されます。たとえば、一意のデータベース ユーザー名や、データベースに対するロールベースのアクセス制御を行うデータベース グループ名を使用すると、一意の JDBC 接続文字列が作成され、一意の接続プールが作成されます。たとえば、ある企業の財務グループに、データベース内のすべてのテーブルへのアクセス権を付与するデータベース ロールが付与されている一方で、販売チームとマーケティング チームは、データベース テーブルのサブセットのみにアクセス権を付与するデータベース ロールを持っているとします。この場合、各グループに一意の JDBC 接続文字列と一意の接続プールを設定します。3 番目のグループは、データベースへのアクセス権を持つ Powered by Looker(PBL)のお客様です。PBL の顧客は、固有の JDBC 文字列と固有の接続プールも持つため、財務グループ、セールス グループ、マーケティング グループに使用されていない一意の接続セットも持つことになります。

  • SQL クエリの WHERE 句によって新しい接続プールが発生することはありません。WHERE 句は JDBC 接続文字列に影響しないため、新しい接続プールは作成されません。たとえば、一意のアクセス フィルタによって、JDBC 接続文字列ではなくクエリの SQL WHERE 句が変更されるため、一意のアクセス フィルタによって新しい接続プールが作成されません。

  • 複数の接続プールが作成されると、最大接続数が複数のプールに断片化され、各プールには使用可能な接続のサブセットが含まれます。これは、接続の総数が最大接続値を超えることができないためです。