MySQL 適用的 Amazon RDS

加密網路流量

最佳做法是加密 Looker 應用程式和資料庫之間的網路流量。請考慮採用「啟用安全的資料庫存取權」說明文件頁面所述的其中一個選項。

如要使用 SSL 加密,請參閱 MySQL RDS 說明文件。

選項

基於效能考量,Looker 通常會使用唯讀副本資料庫 (也稱為唯讀副本)。這樣一來,正式資料庫就能執行主要功能,不會因查詢而降低速度。

本文說明如何執行下列任一操作:

  • 修改現有的副本資料庫,以便與 Looker 搭配使用
  • 建立新的唯讀副本資料庫,並設定與 Looker 搭配運作

修改現有副本

使用者與安全性

將 <some_password_here> 變更為不重複的安全密碼:

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

RDS 和臨時資料表

根據預設,RDS 唯讀副本會啟用唯讀標記,防止 Looker 寫入臨時資料表。Looker 絕不會實際變更現有資料,但 MySQL 仍需要寫入權限才能使用臨時資料表。只要變更 RDS 中的旗標,即可解決這個問題。RDS 常見問題:

問:唯讀副本只能接受資料庫讀取作業嗎?

唯讀副本旨在處理讀取流量。不過,在某些情況下,進階使用者可能希望對唯讀副本完成資料定義語言 (DDL) SQL 陳述式。例如,將資料庫索引新增至用於業務報表的唯讀副本,而不將相同索引新增至對應的來源資料庫執行個體。

您可以設定 Amazon RDS for MySQL,允許對唯讀副本執行 DDL SQL 陳述式。如要為特定唯讀副本啟用讀取以外的操作,請修改唯讀副本的作用中資料庫參數群組,將 read_only 參數設為 0。

Amazon RDS for PostgreSQL 目前不支援對唯讀副本執行 DDL SQL 陳述式。

如果修改資料庫參數群組,則須重新啟動唯讀副本,變更才會生效。

建立資料庫並授予權限

建立臨時資料庫,並授予 looker 使用者寫入權限。MySQL 中的 CREATE TEMPORARY 陳述式必須與資料庫建立關聯,才能授予權限。

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

建立新副本

請注意,AWS RDS 只能為已啟用「備份保留」的資料庫執行個體建立唯讀副本。

AWS 前置步驟

步驟 1

mysql 匯入資料庫,做為主要資料庫執行個體:

mysql -h hostname.uid.region.rds.amazonaws.com -P 3306 -u root -p

步驟 2

建立名為 looker 的使用者 (請將 <some_password_here> 替換成不重複的安全密碼):

CREATE USER looker IDENTIFIED BY '<some_password_here>';

步驟 3

建立暫時資料庫,並授予 Looker 其他資料庫和資料表的讀取權限。Looker 通常不會寫入 looker_tmp 資料庫,而是使用該資料庫執行 CREATE TEMPORARY TABLE 指令。

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

GRANT
  SELECT,
  SHOW DATABASES
ON *.* TO 'looker'@'%';

步驟 4

清除權限:

FLUSH PRIVILEGES;

AWS 步驟

步驟 1

登入並前往 AWS 資訊主頁。在「Database」部分,選取「RDS」。

步驟 2

在 RDS 資訊主頁上,選取要指定為主要資料庫的資料庫執行個體。依序選取「執行個體操作」和「建立唯讀副本」。

步驟 3

在「Create Read Replica DB Instance」彈出式視窗中,設定唯讀副本資料庫,然後選取「Yes, Create Read Replica」。

步驟 4

等待唯讀副本資料庫建立期間,您可以設定資料庫參數群組,其中包含要套用至唯讀副本資料庫執行個體的引擎設定值。在側欄中選取「DB Parameter Groups」頁面,然後選取「Create DB Parameter Group」按鈕。

步驟 5

選取「DB Parameter Group Family」(資料庫參數群組系列) 和「DB Parameter Group Name」(資料庫參數群組名稱),然後輸入「DB Parameter Group Description」(資料庫參數群組說明)。然後選取「是,建立」。

步驟 6

選取含有唯讀副本資料庫參數群組的資料列上的放大鏡圖示,或選取該資料列,然後選取「Edit Parameters」(編輯參數)。

步驟 7

在「參數」下方的「篩選器」欄位中,搜尋「read_only」。將參數值變更為 0。然後選取「儲存變更」。

步驟 8

唯讀副本建立完成後,請從資料庫執行個體清單中選取該副本,然後依序選取「Instance Action」(執行個體動作) 按鈕和「Modify」(修改)。

步驟 9

在「Modify DB Instance」(修改資料庫執行個體) 彈出式視窗中,將資料庫執行個體參數群組變更為新的唯讀副本參數群組。接著勾選「Apply Immediately」方塊,然後依序選取「Continue」和「Modify DB Instance」。

步驟 10

使用 MySQL 用戶端,以 looker 身分連線至唯讀副本資料庫執行個體,並測試是否能存取資料。

建立 Looker 與資料庫的連線

在 Looker 的「Admin」(管理) 部分,選取「Connections」(連線),然後點選「Add Connection」(新增連線)。

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

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

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

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

支援的 JDBC 參數

如果是 MySQL 適用的 Amazon RDS,Looker 支援在連線的「Additional JDBC parameters」(其他 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
期間比較指標
不重複值的近似計數
資料庫內分析模型
自訂日曆