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 資料庫設為使用 mysql_native_password 外掛程式。您可以透過多種方式完成這項操作,具體取決於 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 使用者。

建立資料庫連線時,您可以在「Temp Database」(臨時資料庫) 欄位中指定臨時資料庫的名稱。如未指定暫存資料庫名稱,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 為基礎的複製功能,則必須使用 create_process LookML 參數才能使用 PDT,因為 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,請將 MySQL max_allowed_packet 變數設為最大值 1073741824,以免發生「SQLException: Packet for query is too large」錯誤。

建立 Looker 與資料庫的連線

完成資料庫設定後,即可從 Looker 連線至資料庫。請按照下列步驟,建立 Looker 到資料庫的連線:

  1. 在 Looker 的「Admin」(管理) 部分,選取「Connections」(連線),然後點選「Add Connection」(新增連線)。
  2. 從「Dialect」下拉式選單中,選取資料庫方言名稱:「MySQL」、「MySQL 8.0.12+」、「MariaDB」、「SingleStore」或「SingleStore 7+」。

  3. 填寫連線詳細資料。在這些設定中,有絕大部分都是多數資料庫方言的常用設定。詳情請參閱「將 Looker 連線至資料庫」說明文件頁面。

  4. 如要確認連線成功,請按一下「連線設定」頁面底部「狀態詳細資料」部分中的「測試連線」按鈕。

  5. 如果 Looker 顯示「可連線」,請按下「連線」建立連線。

資料庫連線就會新增至 Looker「連線」管理頁面的清單中。

支援的 JDBC 參數

針對 MySQL、MariaDB 和 SingleStore,Looker 支援在連線的「其他 JDBC 參數」欄位中使用下列 JDBC 參數。如要瞭解這些參數,請參閱資料庫的說明文件。

  • allowMultiQueries
  • autocommit
  • characterSetResults
  • clientCertificateKeyStorePassword
  • clientCertificateKeyStoreUrl
  • connectionAttributes
  • connectionCollation
  • connectionTimeZone
  • connectTimeout
  • defaultAuthenticationPlugin
  • disableSslHostnameVerification
  • disconnectOnExpiredPasswords
  • enabledSslCipherSuites
  • failOverReadOnly
  • fallbackToSystemTrustStore
  • forceConnectionTimeZoneToSession
  • interactiveClient
  • lookerFailover
  • maxIdleTime
  • maxQuerySizeToLog
  • oldModeNoPrecisionTimestamp
  • password
  • passwordCharacterEncoding
  • permitMysqlScheme
  • pinGlobalTxToPhysicalConnection
  • preserveInstants
  • queryInterceptors
  • restrictedAuth
  • rewriteBatchedStatements
  • socketTimeout
  • sslMode
  • tcpKeepAlive
  • trustCertificateKeyStorePassword
  • trustCertificateKeyStoreUrl
  • useCompression
  • usePipelineAuth
  • user
  • useServerPrepStmts
  • verifyServerCertificate
  • yearIsDateType

功能支援

Looker 支援的功能,也必須由資料庫方言支援。

MySQL 支援下列功能 (自 Looker 26.22 起):

功能 是否支援?
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定檢視畫面
終止查詢
以 SQL 為基礎的透視表
時區
SSL
小計
JDBC 額外參數
區分大小寫
位置類型
清單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner Describe Table
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
背景資訊註解
連線集區
HLL Sketch
匯總感知
增量 PDT
毫秒
微秒
materialized view
期間比較指標
不重複值的近似計數
資料庫內分析模型
自訂日曆

自 Looker 26.22 起,MySQL 8.0.12 以上版本支援下列功能:

功能 是否支援?
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定檢視畫面
終止查詢
以 SQL 為基礎的透視表
時區
SSL
小計
JDBC 額外參數
區分大小寫
位置類型
清單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner Describe Table
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
背景資訊註解
連線集區
HLL Sketch
匯總感知
增量 PDT
毫秒
微秒
materialized view
期間比較指標
不重複值的近似計數
資料庫內分析模型
自訂日曆

MariaDB 支援下列功能 (自 Looker 26.22 起):

功能 是否支援?
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定檢視畫面
終止查詢
以 SQL 為基礎的透視表
時區
SSL
小計
JDBC 額外參數
區分大小寫
位置類型
清單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner Describe Table
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
背景資訊註解
連線集區
HLL Sketch
匯總感知
增量 PDT
毫秒
微秒
materialized view
期間比較指標
不重複值的近似計數
資料庫內分析模型
自訂日曆

自 Looker 26.22 起,SingleStore 支援下列功能:

功能 是否支援?
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定檢視畫面
終止查詢
以 SQL 為基礎的透視表
時區
SSL
小計
JDBC 額外參數
區分大小寫
位置類型
清單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner Describe Table
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
背景資訊註解
連線集區
HLL Sketch
匯總感知
增量 PDT
毫秒
微秒
materialized view
期間比較指標
不重複值的近似計數
資料庫內分析模型
自訂日曆

自 Looker 26.22 起,SingleStore 7 以上版本支援下列功能:

功能 是否支援?
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定檢視畫面
終止查詢
以 SQL 為基礎的透視表
時區
SSL
小計
JDBC 額外參數
區分大小寫
位置類型
清單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner Describe Table
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
背景資訊註解
連線集區
HLL Sketch
匯總感知
增量 PDT
毫秒
微秒
materialized view
期間比較指標
不重複值的近似計數
資料庫內分析模型
自訂日曆