הצפנה של תנועה ברשת
מומלץ להצפין את תעבורת הנתונים ברשת בין אפליקציית Looker לבין מסד הנתונים. כדאי לשקול אחת מהאפשרויות שמתוארות בדף הפעלת גישה מאובטחת למסד נתונים.
אם אתם רוצים להשתמש בהצפנת SSL, תוכלו לעיין במסמכי Oracle.
יצירת משתמש Looker
קודם כול יוצרים משתמש ייעודי ב-Looker:
-- connect / as sysdba;
CREATE USER LOOKER IDENTIFIED BY <password>
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
לאחר מכן, נותנים למשתמש החדש ב-Looker את האפשרות ליצור סשנים:
GRANT CREATE SESSION TO LOOKER;
לבסוף, נותנים למשתמש Looker את ההרשאות המתאימות SELECT לטבלאות הנתונים שרוצים לגשת אליהן מ-Looker. אם בעתיד תרצו לגשת לטבלאות נוספות, תצטרכו להעניק הרשאות ל-SELECT גם בטבלאות החדשות.
GRANT SELECT ON -- <all tables that will be used by looker>;
איך מוודאים של-Looker יש גישה לכל הטבלאות
יכול להיות ש-Looker לא יוכל לזהות טבלאות (במיוחד טבלאות ריקות) בלי לאסוף קודם נתונים סטטיסטיים ב-Oracle. אם טבלאות שאתם צריכים לא מופיעות ב-LookML או ב-SQL Runner שנוצרו, נסו להריץ את הפקודה:
EXEC DBMS_STATS.GATHER_DATABASE_STATS;
למידע על שיטות חלופיות, אפשר לעיין במסמכי התיעוד של Oracle.
הגדרה של אובייקטים במסד הנתונים הראשי
מנהל מסד הנתונים של Oracle צריך להגדיר את האובייקטים וההרשאות הבאים ב-Oracle. הפקודות הבאות יוצרות את LOOKER_SESSION ואת LOOKER_SQL כמילים נרדפות ל-V$SESSION ול-V$SQL.
כדי להשלים את ההגדרה הזו, מריצים את הפקודות הבאות כמשתמש root. בדוגמאות האלה מניחים ששם המשתמש ב-Looker הוא LOOKER.
CREATE OR REPLACE VIEW LOOKER_SQL
AS
SELECT
sql.SQL_ID,
sql.SQL_TEXT
FROM
V$SQL sql,
v$session sess
WHERE
sess.SQL_ADDRESS = sql.ADDRESS AND
sess.username='LOOKER';
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;
GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;
-- Pay special attention to the following comments:
-- the following view will be different for clustered Oracle deployments
CREATE OR REPLACE VIEW LOOKER_SESSION
AS
SELECT
SID,
USERNAME,
TYPE,
STATUS,
SQL_ID,
-- If using a single node Oracle deployment
"SERIAL#",
-- If using a clustered Oracle deployment, like Oracle Real Application Clusters
(SERIAL# || ',' || INST_ID) AS "SERIAL#",
AUDSID
-- If using a single node Oracle deployment
FROM V$SESSION
-- If using a clustered Oracle deployment, like Oracle Real Application Clusters
FROM GV$SESSION
WHERE
USERNAME='LOOKER';
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SESSION FOR LOOKER_SESSION;
GRANT SELECT ON LOOKER.LOOKER_SESSION TO LOOKER;
הגדרת צבירות סימטריות
אדמין מסד הנתונים של Oracle צריך להגדיר את הפונקציה LOOKER_HASH כדי להפעיל צבירות סימטריות. הפונקציה LOOKER_HASH היא מילה נרדפת לפונקציה dbms_crypto.hash של Oracle. בנוסף, מנהל מסד הנתונים צריך ליצור את המילה הנרדפת וההרשאות המשויכות. הפקודות הבאות מבוססות על ההנחה ששם המשתמש ב-Looker הוא LOOKER:
CREATE OR REPLACE FUNCTION LOOKER_HASH(bytes raw, prec number)
RETURN raw AS
BEGIN
return(dbms_crypto.HASH(bytes, prec));
END;
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_HASH FOR LOOKER_HASH;
GRANT EXECUTE ON LOOKER.LOOKER_HASH TO LOOKER;
GRANT EXECUTE ON SYS.LOOKER_HASH TO LOOKER;
הגדרת טבלאות נגזרות מתמידות (PDT)
כדי להפעיל טבלאות נגזרות קבועות, צריך לתת למשתמש ב-Looker את ההרשאות UNLIMITED TABLESPACE ו-CREATE TABLE. הפקודות הבאות מבוססות על ההנחה ששם המשתמש ב-Looker הוא LOOKER:
GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;
הגדרת השבתה של שאילתות
כדי להגדיר את השבתת השאילתות, פועלים לפי ההוראות האלה להטמעה רגילה של Oracle או להטמעה של Amazon RDS.
פריסות סטנדרטיות של Oracle
כדי להגדיר ביטול שאילתות בפריסות רגילות של Oracle, מנהל מסד הנתונים של Oracle צריך ליצור את הפרוצדורה LOOKER_KILL_QUERY ככינוי של ALTER SYSTEM KILL SESSION. כדי לעשות זאת, מריצים את הפקודה הבאה:
CREATE OR REPLACE PROCEDURE LOOKER_KILL_QUERY(p_sid in varchar2,
p_serial# in varchar2)
IS
cursor_name pls_integer default dbms_sql.open_cursor;
ignore pls_integer;
BEGIN
SELECT
COUNT(*) INTO ignore
-- If using a single node Oracle deployment
FROM V$SESSION
-- If using a clustered Oracle deployment, like Oracle Real Application Clusters
FROM GV$SESSION
WHERE
username = USER
AND sid = p_sid
-- If using a single node Oracle deployment
AND serial# = p_serial#;
-- If using a clustered Oracle deployment, like Oracle Real Application Clusters
AND (SERIAL# || ',' || INST_ID) = p_serial#;
IF (ignore = 1)
THEN
dbms_sql.parse(cursor_name,
'ALTER SYSTEM KILL SESSION '''
|| p_sid || ',' || p_serial# || '''',
dbms_sql.native);
ignore := dbms_sql.execute(cursor_name);
ELSE
raise_application_error(-20001,
'You do not own session ''' ||
p_sid || ',' || p_serial# ||
'''');
END IF;
END;
בנוסף, מנהל מסד הנתונים יצטרך להריץ את הפקודות הבאות שקשורות לכך:
CREATE OR REPLACE SYNONYM LOOKER.LOOKER_KILL_QUERY FOR SYS.LOOKER_KILL_QUERY;
GRANT EXECUTE ON SYS.LOOKER_KILL_QUERY TO LOOKER;
פריסות של Amazon RDS
בפריסות של Amazon RDS Oracle, משתמשים בפרוצדורה rdsadmin.rdsadmin_util.kill כדי להפסיק שאילתות. כדי להשתמש בהליך הזה, למשתמש במסד הנתונים של Looker צריך להיות מוקצה התפקיד DBA.
כדי לתת למשתמש מסד הנתונים של Looker את היכולת להפסיק שאילתות, מריצים את הפקודה הבאה:
GRANT DBA TO LOOKER;
יצירת חיבור Looker למסד הנתונים
בקטע Admin (ניהול) ב-Looker, בוחרים באפשרות Connections (חיבורים) ואז לוחצים על Add Connection (הוספת חיבור).
ממלאים את פרטי החיבור. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. מידע נוסף זמין בדף חיבור Looker למסד הנתונים. ההגדרות הבאות ספציפיות ל-Oracle:
- שם: מציינים את שם החיבור. כך תתייחסו לחיבור בפרויקטים של LookML.
- ניב: Oracle.
- שימוש ב-TNS: הפעלת חיבורים של Transparent Network Substrate (TNS).
- מארח: שם המארח או כינוי TNS.
- יציאה: יציאת מסד הנתונים.
- מסד נתונים: שם מסד הנתונים (אם לא משתמשים ב-TNS).
- שם השירות: שם השירות (אם משתמשים ב-TNS).
- שם משתמש: שם המשתמש במסד הנתונים או מסד נתונים זמני אם מופעלים כללי PDT.
- סיסמה: סיסמת משתמש במסד הנתונים.
- הפעלת PDT: משתמשים במתג הזה כדי להפעיל טבלאות נגזרות מתמידות. כשמפעילים PDT, בחלון Connection מופיעות הגדרות נוספות של PDT והקטע PDT Overrides.
- מסד נתונים זמני: ב-Oracle משתמש הוא סכימה, ולכן צריך לציין את השם של משתמש מסד הנתונים. בדוגמה הזו, צריך להשתמש בערך הסכימה הזמנית
LOOKER. - מספר החיבורים המקסימלי של כלי ליצירת PDT: מציינים את מספר האפשרויות האפשריות ליצירת PDT בו-זמנית בחיבור הזה. הגדרת ערך גבוה מדי עלולה להשפיע לרעה על זמני השאילתות. מידע נוסף זמין בדף התיעוד בנושא חיבור Looker למסד הנתונים.
- פרמטרים נוספים של JDBC: משאירים את השדה הזה ריק, כי Oracle לא תומכת בפרמטרים נוספים של JDBC.
- לוח זמנים לתחזוקה: ביטוי
cronשמציין מתי Looker צריך לבדוק קבוצות נתונים וטבלאות נגזרות קבועות. מידע נוסף על ההגדרה הזו זמין במסמכי התיעוד בנושא תזמון תחזוקה. - SSL: מסמנים את התיבה כדי להשתמש בחיבורי SSL.
- אימות SSL: אפשר להתעלם מהשדה הזה. Oracle ישתמש ב-Java Truststore כברירת מחדל כדי לאמת SSL.
- מספר החיבורים המקסימלי לכל צומת: אפשר להשאיר את ההגדרה הזו בערך ברירת המחדל בהתחלה. מידע נוסף על ההגדרה הזו זמין בקטע Max connections per node בדף התיעוד Connecting Looker to your database.
- Connection Pool Timeout (זמן קצוב לתפוגה של מאגר חיבורים): אפשר להשאיר את ההגדרה הזו בערך ברירת המחדל בהתחלה. מידע נוסף על ההגדרה הזו זמין בקטע Connection Pool Timeout (פסק זמן של מאגר חיבורים) בדף התיעוד Connecting Looker to your database (חיבור Looker למסד הנתונים).
- SQL Runner Precache: כדי ש-SQL Runner לא יטען מראש את פרטי הטבלה, אלא יטען אותם רק כשבוחרים טבלה, מבטלים את הסימון של האפשרות הזו. מידע נוסף על ההגדרה הזו זמין בקטע SQL Runner Precache בדף התיעוד Connecting Looker to your database.
- Database Time Zone (אזור זמן של מסד הנתונים): מציינים את אזור הזמן שבו נעשה שימוש במסד הנתונים. אם לא רוצים להמיר את אזור הזמן, משאירים את השדה הזה ריק. מידע נוסף מופיע בדף התיעוד בנושא שימוש בהגדרות אזור הזמן.
כדי לוודא שהחיבור בוצע בהצלחה, לוחצים על בדיקה. מידע לפתרון בעיות זמין בדף בנושא בדיקת הקישוריות למסד הנתונים.
כדי לשמור את ההגדרות האלה, לוחצים על Connect (חיבור). בקטע Admin (ניהול) ב-Looker, בוחרים באפשרות Connections (חיבורים) ואז לוחצים על Add Connection (הוספת חיבור).
תמיכה בתכונות
כדי ש-Looker יתמוך בתכונות מסוימות, הדיאלקט של מסד הנתונים שלכם צריך לתמוך בהן גם כן.
התכונות הבאות נתמכות ב-Oracle החל מ-Looker 26.10:
| תכונה | האם יש תמיכה? |
|---|---|
| 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 Explain | |
| פרטי כניסה של OAuth 2.0 | |
| תגובות להוספת הקשר | |
| איגום חיבורים | |
| רישומים מסוג HLL | |
| מודעות מצטברת | |
| המרות מצטברות של PDT | |
| אלפיות שנייה | |
| מיקרו-שניות | |
| תצוגות מהותיות | |
| מדדים של השוואה בין תקופות שונות | |
| ספירה משוערת של ערכים ייחודיים | |
| מודלים אנליטיים בתוך מסד הנתונים | |
| יומנים בהתאמה אישית |