MySQL、Clustrix、MariaDBおよびSingleStore

これらのインストラクションを使用するダイアレクト

本ページに記載のデータベース設定要件は、MySQL、Clustrix、MariaDB、SingleStore(旧称MemSQL)で共通です。

ネットワークトラフィックの暗号化

Looker では、Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することを強く推奨します。安全なデータベース アクセスの有効化に関するドキュメント ページで説明されているオプションのいずれかを検討します。

SSL 暗号化の使用に関心をお持ちの場合は、MySQL のドキュメント ページをご覧ください。

ユーザーとセキュリティ

必要なアクセス権限を作成し、Lookerユーザーに付与するには、お使いのデータベースのダイアレクトとバージョンに該当するセクションの指示に従ってください。

MySQL 8.0.X:

GROUP BY MySQL 句の暗黙的な並べ替えでは MySQL のサポート終了のため、Looker MySQL 8.0.X 言語オプションはパッチ バージョン 8.0.12 以降で実装されています。これは、MySQL バージョン 8.0.0 ~ 8.0.11 の Looker の小計に影響を与え、SQL の生成エラーが発生します。Looker で完全に統合するには、MySQL 8.0.X データベースを 8.0.12 以降にアップグレードすることをおすすめします。ただし、MySQL の旧バージョンは小計を除いて引き続き使用できます。

MySQL 8.0.X では、デフォルトの認証プラグインは caching_sha2_password です。Looker では、mysql_native_password プラグインを使用して、JDBC ドライバを介して MySQL データベースへの認証を試みます。このバージョンの MySQL を正常に機能させるには、次の追加手順を行う必要があります。

  1. mysql_native_password プラグインを使用するように MySQL データベースを構成します。これを行う方法は複数あり、MySQL 8 データベースのデプロイ方法と、構成に対するアクセス権の種類によって異なります。
    1. --default-auth=mysql_native_password フラグを指定してプロセスを開始します。
    2. my.cnf 構成ファイルでプロパティを設定します。
      ```none [mysqld] default-authentication-plugin=mysql_native_password ```
    3. データベース インスタンスが AWS RDS でホストされている場合は、このデータベース インスタンスに適用される RDS パラメータ グループを介して default_authentication_plugin パラメータを設定します。

  2. 次のステートメントを発行します。some_password_here は一意の安全なパスワードに置き換えます。

      CREATE USER looker IDENTIFIED WITH mysql_native_password BY 'some_password_here';
    GRANT SELECT ON database_name.* TO 'looker'@'%';
    

MySQL 5.7.X以前、Clustrix、MariaDB、SingleStore:

次のステートメントを発行します。some_password_here は一意の安全なパスワードに置き換えます。

CREATE USER looker;
SET PASSWORD FOR looker = PASSWORD ('some_password_here');
GRANT SELECT ON database_name.* TO 'looker'@'%';

永続的派生テーブルの一時スキーマの設定

これらのデータベース言語は、永続的な派生テーブル(PDT)の作成をサポートします。非常に有用な機能であるため、可能な場合は有効化することをお勧めします。

PDT を有効にするには、一時スキーマを構成する必要があります。次のコマンドは、一時データベースを作成し、必要な権限を looker ユーザーに付与する例を示しています。

データベース接続を作成するときに、[Temp Database] フィールドに一時データベースの名前を指定できます。一時データベース名を指定しない場合は、looker_tmp という名前のスクラッチ データベースが生成されます。次のコマンドでは looker_tmp を使用していますが、別の一時データベース名を指定した場合は、looker_tmp の代わりに一時データベース名を使用します。

CREATE SCHEMA looker_tmp;
GRANT
  SELECT,
  INDEX,
  INSERT,
  UPDATE,
  DELETE,
  CREATE,
  DROP,
  ALTER,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';

SingleStore の場合、またはデータベースで GTID ベースのレプリケーションを使用している場合、GTID は CREATE TABLE AS SELECT ステートメントをサポートしていないため、PDT を使用するには LookML パラメータ create_process を使用する必要があります。

標準派生テーブルの代替設定

永続的な派生テーブルの作成を許可しない場合でも、通常の派生テーブルを使用できます。通常の派生テーブルを使用するには、looker_tmp というスキーマに特定の権限を追加する必要があります。しかし、実際には looker_tmp スキーマがデータベースに存在する必要はありません。

GRANT
  SELECT,
  INDEX,
  INSERT,
  DROP,
  CREATE TEMPORARY TABLES
ON looker_tmp.* TO 'looker'@'%';
-- Note that the looker_tmp schema does not need to actually exist,
-- even though these permission grants are still needed

max_allowed_packet 変数の設定

MySQL の場合、MySQL max_allowed_packet 変数を最大値 1073741824 に設定して、「SQLException: Query for query is too large」というエラーを防止します。

機能のサポート

一部の機能については、Lookerでサポートするには、データベースダイアレクトが同じ機能に対応している必要があります。

Looker の最新リリースでは、MySQL は次の Looker 機能をサポートしています。

Looker の最新リリースでは、MySQL 8.0.12 以降が次の Looker 機能をサポートしています。

Looker の最新リリースでは、Clustrix は次の Looker 機能をサポートしています。

Looker の最新リリースでは、MariaDB は次の Looker 機能をサポートしています。

Looker の最新リリースでは、SingleStore は次の Looker 機能をサポートしています。

Looker の最新リリースでは、SingleStore 7+ で次の Looker 機能がサポートされています。

次のステップ

データベースの構成が完了したら、こちらの手順に沿って Looker からデータベースに接続できます。

接続を作成するときは、正しいデータベース言語名を使用してください。MySQL、Clustrix、MariaDB、SingleStore のデータベース構成手順は同じですが、[Connections] ページの [Dialect] プルダウンから目的の言語を選択してください。詳細については、こちらをご覧ください。