MySQL、MariaDB、SingleStore

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

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

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

Looker アプリケーションとデータベース間のネットワーク トラフィックを暗号化することをおすすめします。セキュアなデータベースアクセスを可能にするドキュメント ページに記載されているオプションのいずれかを検討してください。

SSL 暗号化の使用を検討している場合は、こちらの MySQL のドキュメント ページをご覧ください。

ユーザーとセキュリティ

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

MySQL 8.0.X:

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

  1. mysql_native_password プラグインを使用するように MySQL データベースを構成します。これは複数の方法で実行できます。どの方法を使用するかは、MySQL 8データべースのデプロイ方法と、構成へのアクセスのタイプによって決まります。

    • --default-auth=mysql_native_password フラグでプロセスを開始する

    • my.cnf 構成ファイルのプロパティを設定します。

    [mysqld]
    default-authentication-plugin=mysql_native_password
    
    • データベース インスタンスが 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 以前、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 ユーザーへの付与の例を示しています。

データベース接続の作成時に、一時データベース フィールドで一時データベースの名前を指定できます。一時データベースの名前を指定しない場合、Looker は 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 ベースのレプリケーションを使用している場合、PDT を使用するには create_process LookML パラメータを使用する必要があります。これは、GTID では CREATE TABLE AS SELECT ステートメントがサポートされないためです。

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

永続的な派生テーブルの作成を許可しない場合でも、標準の派生テーブルを使用できます。通常の派生テーブルを使用する場合でも、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 では、「SQLException: Packet for query is too large」エラーを防ぐために、MySQL max_allowed_packet 変数を最大値(1073741824)に設定します。

データベースへの Looker 接続の作成

データベースの構成が完了したら、Lookerからデータベースに接続できます。Looker からデータベースへの接続を作成する手順は次のとおりです。

  1. Looker の [管理者] セクションで [接続] を選択し、[新しい接続] をクリックします。
  2. [言語] プルダウン メニューから、データベース言語名(MySQLMySQL 8.0.12 以降MariaDBSingleStoreSingleStore 7 以降)を選択します。

  3. 接続の詳細を入力します。設定の大部分は、ほとんどのデータベース言語に共通するものです。詳細については、Looker をデータベースに接続するのドキュメント ページをご覧ください。

  4. 接続が成功したことを確認するには、[テスト] をクリックします。トラブルシューティング情報については、データベース接続のテストのドキュメント ページをご覧ください。

  5. これらの設定を保存するには、[接続] をクリックします。

機能のサポート

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

MySQL は、Looker 24.16 の時点で、次の機能をサポートしています。

機能 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
×
対称集計
派生テーブル
永続的な SQL 派生テーブル
永続的なネイティブ派生テーブル
安定したビュー
クエリの強制終了
SQL ベースのピボット
タイムゾーン
SSL
Subtotals
JDBC の追加パラメータ
大文字と小文字を区別
×
ロケーション タイプ
リストのタイプ
パーセンタイル
個別のパーセンタイル
SQL Runner の表示プロセス
SQL Runner の説明テーブル
SQL Runner 表示インデックス
SQL Runner Select 10
SQL ランナーの数
SQL の説明
Oauth 認証情報
×
コンテキスト コメント
接続プーリング
×
HLL スケッチ
×
集計認識
増分PDT
ミリ秒
マイクロ秒
マテリアライズド ビュー
×
Approximate Count Distinct
×

MySQL 8.0.12 以降では、Looker 24.16 の時点で、次の機能をサポートしています。

機能 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
対称集計
派生テーブル
永続的な SQL 派生テーブル
永続的なネイティブ派生テーブル
安定したビュー
クエリの強制終了
SQL ベースのピボット
タイムゾーン
SSL
Subtotals
JDBC の追加パラメータ
大文字と小文字を区別
×
ロケーション タイプ
リストのタイプ
パーセンタイル
個別のパーセンタイル
SQL Runner の表示プロセス
SQL Runner の説明テーブル
SQL Runner 表示インデックス
SQL Runner Select 10
SQL ランナーの数
SQL の説明
Oauth 認証情報
×
コンテキスト コメント
接続プーリング
×
HLL スケッチ
×
集計認識
増分PDT
ミリ秒
マイクロ秒
マテリアライズド ビュー
×
Approximate Count Distinct
×

MariaDB は、Looker 24.16 の時点で、次の機能をサポートしています。

機能 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
対称集計
派生テーブル
永続的な SQL 派生テーブル
永続的なネイティブ派生テーブル
安定したビュー
クエリの強制終了
SQL ベースのピボット
×
タイムゾーン
SSL
Subtotals
JDBC の追加パラメータ
大文字と小文字を区別
×
ロケーション タイプ
リストのタイプ
パーセンタイル
個別のパーセンタイル
SQL Runner の表示プロセス
SQL Runner の説明テーブル
SQL Runner 表示インデックス
SQL Runner Select 10
SQL ランナーの数
SQL の説明
Oauth 認証情報
×
コンテキスト コメント
接続プーリング
×
HLL スケッチ
×
集計認識
増分PDT
×
ミリ秒
マイクロ秒
マテリアライズド ビュー
×
Approximate Count Distinct
×

SingleStore では、Looker 24.16 の時点で、次の機能をサポートしています。

機能 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
×
対称集計
派生テーブル
永続的な SQL 派生テーブル
永続的なネイティブ派生テーブル
安定したビュー
クエリの強制終了
SQL ベースのピボット
タイムゾーン
SSL
Subtotals
JDBC の追加パラメータ
大文字と小文字を区別
×
ロケーション タイプ
リストのタイプ
パーセンタイル
×
個別のパーセンタイル
×
SQL Runner の表示プロセス
SQL Runner の説明テーブル
SQL Runner 表示インデックス
SQL Runner Select 10
SQL ランナーの数
SQL の説明
Oauth 認証情報
×
コンテキスト コメント
接続プーリング
×
HLL スケッチ
×
集計認識
増分PDT
×
ミリ秒
マイクロ秒
マテリアライズド ビュー
×
Approximate Count Distinct
×

SingleStore 7 以降では、Looker 24.16 の時点で、次の機能をサポートしています。

機能 サポート対象
サポート レベル
サポート対象
Looker(Google Cloud コア)
対称集計
派生テーブル
永続的な SQL 派生テーブル
永続的なネイティブ派生テーブル
安定したビュー
クエリの強制終了
SQL ベースのピボット
タイムゾーン
SSL
Subtotals
JDBC の追加パラメータ
大文字と小文字を区別
×
ロケーション タイプ
リストのタイプ
パーセンタイル
個別のパーセンタイル
×
SQL Runner の表示プロセス
SQL Runner の説明テーブル
SQL Runner 表示インデックス
SQL Runner Select 10
SQL ランナーの数
SQL の説明
Oauth 認証情報
×
コンテキスト コメント
接続プーリング
×
HLL スケッチ
×
集計認識
増分PDT
×
ミリ秒
マイクロ秒
マテリアライズド ビュー
×
Approximate Count Distinct
×