הצפנת התנועה ברשת
מומלץ להצפין את התנועה ברשת בין אפליקציית 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 יכול ליצור עותקים לקריאה בלבד רק עם מכונות של מסדי נתונים שבהן מופעלת האפשרות Backup Retention.
שלבים לפני 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:
FLUSH PRIVILEGES;
שלבים ב-AWS
שלב 1
מתחברים ועוברים למרכז הבקרה של AWS. בקטע Database, בוחרים באפשרות RDS.

שלב 2
בלוח הבקרה של RDS, בוחרים את המכונה של מסד הנתונים שרוצים להגדיר כמסד הנתונים הראשי. בוחרים באפשרות Instance Actions ואז באפשרות Create Read Replica.

שלב 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.
Step 7
בשדה Filters בקטע Parameters, מחפשים את הערך read_only. משנים את ערך הפרמטר ל-0. לאחר מכן לוחצים על שמירת השינויים.
שלב 8
בסיום היצירה של העותק לקריאה בלבד, בוחרים אותו מרשימת המכונות של מסד הנתונים, לוחצים על הכפתור Instance Action ובוחרים באפשרות Modify.
שלב 9
בחלון הקופץ Modify DB Instance, משנים את Parameter Group של מכונת מסד הנתונים לקבוצת הפרמטרים החדשה של העותק הזהה לקריאה בלבד. מסמנים את התיבה Apply Immediately, לוחצים על Continue ואז על Modify DB Instance.
שלב 10
באמצעות לקוח MySQL, מתחברים למכונה של מסד הנתונים של הרפליקה לקריאה בלבד בתור looker ובודקים אם אפשר לגשת לנתונים.
יצירת החיבור של Looker למסד הנתונים
בקטע Admin ב-Looker, בוחרים באפשרות Connections ולוחצים על Add Connection.
ממלאים את פרטי החיבור. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. מידע נוסף זמין בדף התיעוד קישור Looker למסד הנתונים.
כדי לוודא שהחיבור הצליח, לוחצים על הכפתור בדיקת החיבור בקטע פרטי הסטטוס בתחתית הדף הגדרות החיבור.
אם ב-Looker מוצגת ההודעה Can Connect, לוחצים על Connect כדי ליצור את החיבור.
החיבור למסד הנתונים יתווסף לרשימה בדף Admin (ניהול) בקטע Connections (חיבורים) ב-Looker.
פרמטרים נתמכים של JDBC
ב-Amazon RDS ל-MySQL, Looker תומך בפרמטרים הבאים של JDBC בשדה Additional JDBC parameters של החיבור. מידע על הפרמטרים האלה מופיע במסמכי התיעוד של מסד הנתונים.
allowMultiQueriesautocommitcharacterSetResultsclientCertificateKeyStorePasswordclientCertificateKeyStoreUrlconnectionAttributesconnectionCollationconnectionTimeZoneconnectTimeoutdefaultAuthenticationPlugindisableSslHostnameVerificationdisconnectOnExpiredPasswordsenabledSslCipherSuitesfailOverReadOnlyfallbackToSystemTrustStoreforceConnectionTimeZoneToSessioninteractiveClientlookerFailovermaxIdleTimemaxQuerySizeToLogoldModeNoPrecisionTimestamppasswordpasswordCharacterEncodingpermitMysqlSchemepinGlobalTxToPhysicalConnectionpreserveInstantsqueryInterceptorsrestrictedAuthrewriteBatchedStatementssocketTimeoutsslModetcpKeepAlivetrustCertificateKeyStorePasswordtrustCertificateKeyStoreUrluseCompressionusePipelineAuthuseruseServerPrepStmtsverifyServerCertificateyearIsDateType
תמיכה בתכונות
כדי ש-Looker יתמוך בתכונות מסוימות, גם הניב של מסד הנתונים צריך לתמוך בהן.
החל מגרסה 26.22 של Looker, MySQL תומך בתכונות הבאות:
| תכונה | יש תמיכה? |
|---|---|
| Looker (Google Cloud core) | |
| צבירה סימטרית | |
| טבלאות נגזרות | |
| טבלאות נגזרות מתמידות של SQL | |
| טבלאות נגזרות מתמידות מבוססות LookML | |
| תצוגות יציבות | |
| סגירת שאילתות | |
| טבלאות ציר שמבוססות על SQL | |
| אזורי זמן | |
| SSL | |
| סיכומי ביניים | |
| פרמטרים נוספים של JDBC | |
| תלוי אותיות רישיות (case-sensitive) | |
| סוג מיקום | |
| סוג הרשימה | |
| מאון | |
| מאון ייחודי | |
| הצגת תהליכים ב-SQL Runner | |
| SQL Runner Describe Table | |
| הצגת אינדקסים ב-SQL Runner | |
| SQL Runner Select 10 | |
| מספר השאילתות ב-SQL Runner | |
| הסבר על קוד SQL | |
| פרטי כניסה של OAuth 2.0 | |
| הערות להוספת הקשר | |
| מאגר חיבורים (connection pooling) | |
| שרטוטי HLL | |
| מודעות מצטברת | |
| טבלאות PDT מצטברות | |
| אלפיות השנייה | |
| מיקרו-שניות | |
| תצוגות מהותיות | |
| מדדים להשוואה בין תקופות שונות | |
| ספירה משוערת של ערכים ייחודיים | |
| מודלים של ניתוח נתונים במסד הנתונים | |
| יומנים בהתאמה אישית |