‫Amazon RDS ל-MySQL

הצפנה של תנועה ברשת

מומלץ להצפין את תעבורת הנתונים ברשת בין אפליקציית 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:

ש': האם העתקים לקריאה יכולים לקבל רק פעולות קריאה של מסד נתונים?

העתקים לקריאה נועדו לטפל בתנועת קריאה. עם זאת, יכולים להיות תרחישי שימוש שבהם משתמשים מתקדמים ירצו להשלים הצהרות SQL של שפת הגדרת נתונים (DDL) מול עותק לקריאה. לדוגמה, אפשר להוסיף אינדקס למסד נתונים לעותק לקריאה שמשמש לדיווח עסקי, בלי להוסיף את אותו אינדקס למופע מסד הנתונים המקביל של המקור.

אפשר להגדיר את Amazon RDS ל-MySQL כך שיאפשר הצהרות DDL SQL לגבי העתק לקריאה. אם רוצים להפעיל פעולות אחרות מלבד קריאות עבור עותק לקריאה נתון, צריך לשנות את קבוצת הפרמטרים הפעילה של מסד הנתונים עבור העותק לקריאה, ולהגדיר את הפרמטר read_only לערך 0.

בשלב הזה, Amazon RDS ל-PostgreSQL לא תומך בהרצה של הצהרות DDL SQL מול עותק לקריאה.

אם משנים את קבוצת הפרמטרים של מסד הנתונים, צריך להפעיל מחדש את העותק לקריאה כדי שהשינויים ייכנסו לתוקף.

יצירת מסד נתונים והענקת הרשאות

יוצרים מסד נתונים זמני ומעניקים למשתמש looker הרשאות כתיבה בו. ההצהרה CREATE TEMPORARY ב-MySQL צריכה להיות משויכת למסד נתונים למטרות הרשאה.

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

לוחצים על סמל זכוכית המגדלת בשורה שמכילה את קבוצת הפרמטרים של מסד הנתונים של העותק לקריאה, או בוחרים את השורה הזו ולוחצים על עריכת פרמטרים.

Step 7

בשדה Filters (מסננים) בקטע Parameters (פרמטרים), מחפשים את read_only. משנים את ערך הפרמטר ל-0. לאחר מכן לוחצים על שמירת השינויים.

שלב 8

אחרי שנוצר העותק לקריאה, בוחרים אותו מרשימת מופעי מסד הנתונים, לוחצים על הלחצן Instance Action (פעולת מופע) ובוחרים באפשרות Modify (שינוי) בפעולת המופע.

שלב 9

בחלון הקופץ Modify DB Instance, משנים את Parameter Group של מופע מסד הנתונים לקבוצת הפרמטרים החדשה של העותק לקריאה. אחר כך מסמנים את התיבה החלה מיידית, לוחצים על המשך ובוחרים באפשרות שינוי של מופע מסד הנתונים.

שלב 10

באמצעות לקוח MySQL, מתחברים למופע מסד הנתונים של העותק לקריאה בתור looker ובודקים אם יש גישה לנתונים.

יצירת חיבור Looker למסד הנתונים

בקטע ניהול ב-Looker, בוחרים באפשרות חיבורים ואז לוחצים על הוספת חיבור.

ממלאים את פרטי החיבור. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. מידע נוסף זמין בדף חיבור Looker למסד הנתונים.

כדי לוודא שהחיבור בוצע בהצלחה, לוחצים על הלחצן בדיקת החיבור בקטע פרטי הסטטוס בחלק התחתון של הדף הגדרות החיבורים.

אם ב-Looker מוצגת האפשרות Can Connect (אפשר להתחבר), לוחצים על Connect (התחברות) כדי ליצור את החיבור.

החיבור למסד הנתונים יתווסף לרשימה בדף Connections Admin ב-Looker.

פרמטרים נתמכים של JDBC

ב-Amazon RDS for MySQL, ‏ Looker תומך בפרמטרים הבאים של JDBC בשדה Additional JDBC parameters של החיבור. מידע על הפרמטרים האלה מופיע במאמרי העזרה של מסד הנתונים.

  • 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.18,‏ MySQL תומך בתכונות הבאות:

התכונה נתמך?
Looker (Google Cloud core)‎
צבירה סימטרית
טבלאות נגזרות
טבלאות נגזרות מתמידות שמבוססות על SQL
טבלאות נגזרות מתמידות מבוססות LookML
תצוגות יציבות
ביטול שאילתות
טבלאות ציר שמבוססות על SQL
אזורי זמן
SSL
סיכומי ביניים
פרמטרים נוספים של JDBC
תלוי אותיות רישיות
סוג מיקום
סוג הרשימה
מאון
אחוזון ייחודי
SQL Runner Show Processes
SQL Runner Describe Table
SQL Runner Show Indexes
SQL Runner Select 10
מספר המשתמשים ב-SQL Runner
הסבר על SQL
פרטי כניסה של OAuth 2.0
תגובות להוספת הקשר
איגום חיבורים
סקיצות HLL
מודעות מצטברת
PDT מצטברות
אלפיות השנייה
מיקרו-שניות
תצוגות מהותיות
מדדים של השוואה בין תקופות שונות
ספירה משוערת של ערכים ייחודיים
מודלים אנליטיים במסד הנתונים
יומנים בהתאמה אישית