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 常見問題解答

Q:我的唯讀副本可以只接受資料庫讀取操作嗎?

讀取副本旨在服務讀取流量。但是,在某些使用場景中,進階使用者可能希望針對唯讀副本完成資料定義語言 (DDL) SQL 語句。例如,向用於業務報表的唯讀副本新增資料庫索引,而未向對應的來源資料庫實例新增相同的索引。

可以設定 Amazon RDS for MySQL 以允許對唯讀副本執行 DDL SQL 語句。如果您希望為給定的唯讀副本啟用讀取以外的操作,請修改該只讀副本的活動 DB 參數組,將 read_only 參數設為 0

Amazon RDS for PostgreSQL 目前不支援對唯讀副本執行 DDL SQL 語句。

如果您變更 DB 參數群組,則需要重新啟動唯讀副本才能使變更生效。

建立資料庫並授予權限

建立一個臨時資料庫,並授予 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

建立唯讀副本資料庫實例彈出窗口,配置唯讀副本資料庫並選擇是的,建立唯讀副本

步驟 4

在等待唯讀副本資料庫建立期間,您可以設定 DB 參數群組,其中將包含套用於唯讀副本資料庫實例的引擎設定值。在側邊欄中選擇 資料庫參數組 頁面,然後選擇 建立資料庫參數組 按鈕。

步驟 5

選擇 DB 參數組系列DB 參數組名稱,並輸入 DB 參數組描述。然後選擇 是,建立

步驟 6

選擇包含讀取副本資料庫參數組的行上的放大鏡圖標,選擇該行,然後選擇編輯參數

步驟 7

Parameters 下的 Filters 欄位中,搜尋「read_only」。將參數值變更為 0。然後選擇 儲存變更

步驟 8

當只讀副本建立完成後,從資料庫實例清單中選擇它,選擇 實例操作 按鈕,然後在實例操作中選擇 修改

步驟 9

修改資料庫實例彈出窗口,更改資料庫實例參數組新增到新的唯讀副本參數組。然後檢查立即申請框,選擇繼續並選擇修改資料庫實例

步驟 10

使用 MySQL 用戶端,以 looker 身分連接到只讀副本資料庫實例,並測試資料是否可存取。

建立 Looker 資料庫連線

在 Looker 的「管理」部分中,選取「連線」,然後按一下「新增連線」

填寫連線詳細資料。在這些設定中,有絕大部分都是多數資料庫方言的常用設定。參見將 Looker 連接到您的資料庫文件頁面提供相關資訊。

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

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

資料庫連線隨即會新增至 Looker「連線管理頁面的清單。

支援的 JDBC 參數

對於 Amazon RDS for MySQL,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 支援某些功能,資料庫方言也必須支援這些功能。

從 Looker 26.16 版本開始,MySQL 支援以下功能:

功能 是否支援?
Looker (Google Cloud Core)
對稱式匯總函式
衍生資料表
永久 SQL 衍生資料表
永久原生衍生資料表
穩定檢視畫面
終止查詢
以 SQL 為基礎的樞紐
時區
SSL
小計
JDBC 其他參數
區分大小寫
位置類型
名單類型
百分位數
不重複值的百分位數
SQL Runner 顯示程序
SQL Runner 說明資料表
SQL Runner 顯示索引
SQL Runner 選取 10
SQL Runner 計數
SQL 說明
OAuth 2.0 憑證
內容留言
連線集區
HLL 草圖
匯總感知
增量 PDT
毫秒
微秒
具體化檢視表
與前一段時期相比的指標
不重複值的概略計數
資料庫內分析模型
自訂日曆