אתם יכולים להגדיר את Looker כך שינתח נתונים שמאוחסנים במסד הנתונים של Oracle. השילוב של Looker עם Oracle מספק חיבור מאובטח, תומך בטבלאות נגזרות מתמידות (PDT) ומאפשר סיום של שאילתות. השילוב הזה מאפשר לכם להשתמש בנתונים מ-Oracle ישירות בפלטפורמת Looker כדי לתמוך בניתוח הנתונים ובצרכים התפעוליים שלכם.
הצפנת התנועה ברשת
מומלץ להצפין את התנועה ברשת בין אפליקציית 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)
כדי להפעיל טבלאות נגזרות מתמידות (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.
- Dialect: Oracle.
- שימוש ב-TNS: הפעלת חיבורי Transparent Network Substrate (TNS).
- מארח: שם המארח או כינוי TNS.
- Port: יציאת מסד הנתונים.
- Database: שם מסד הנתונים (אם לא משתמשים ב-TNS).
- Service Name: שם השירות (אם משתמשים ב-TNS).
- שם משתמש: שם המשתמש של מסד הנתונים או מסד נתונים זמני אם טבלאות PDT מופעלות.
- סיסמה: סיסמת המשתמש של מסד הנתונים.
- Enable PDTs: מתג להפעלה של טבלאות נגזרות מתמידות (PDT). כשהאפשרות PDTs מופעלת, בחלון Connection מופיעות הגדרות נוספות של PDT והקטע PDT Overrides.
- מסד נתונים זמני: ב-Oracle משתמש הוא סכימה, לכן צריך לציין את השם של המשתמש במסד הנתונים. בדוגמה הזו, צריך להשתמש בערך הסכימה הזמני
LOOKER. - Max number of PDT builder connections: מציינים את מספר ה-PDT שאפשר ליצור בו-זמנית בחיבור הזה. אם הערך הזה גבוה מדי, הוא עלול להשפיע לרעה על זמני השאילתות. מידע נוסף זמין בדף התיעוד קישור של Looker למסד הנתונים.
- פרמטרים נוספים של JDBC: משאירים את השדה הזה ריק, כי Oracle לא תומכת בפרמטרים נוספים של JDBC.
- לוח זמנים לתחזוקה: ביטוי
cronשמציין מתי Looker צריך לבדוק קבוצות נתונים וטבלאות נגזרות מתמידות. מידע נוסף על ההגדרה הזו זמין במסמכי התיעוד של לוח הזמנים לתחזוקה. - SSL: מסמנים את התיבה כדי להשתמש בחיבורי SSL.
- אימות SSL: מתעלמים מהשדה הזה. Oracle תשתמש ב-Java Truststore שמוגדר כברירת מחדל כדי לאמת את ה-SSL.
- מספר החיבורים המקסימלי לכל צומת: אפשר להשאיר את ההגדרה הזו בערך ברירת המחדל בהתחלה. מידע נוסף על ההגדרה הזו זמין בקטע מספר החיבורים המקסימלי לכל צומת בדף התיעוד חיבור Looker למסד הנתונים.
- Connection Pool Timeout: אפשר להשאיר את ההגדרה הזו בערך ברירת המחדל בהתחלה. מידע נוסף על ההגדרה הזו זמין בקטע Connection Pool Timeout בדף התיעוד Connecting Looker to your database.
- SQL Runner Precache: כדי ש-SQL Runner לא יטען מראש את פרטי הטבלה, אלא רק כשבוחרים טבלה, מבטלים את הסימון של האפשרות הזו. מידע נוסף על ההגדרה הזו זמין בקטע SQL Runner Precache בדף התיעוד Connecting Looker to your database.
- אזור הזמן של מסד הנתונים: מציינים את אזור הזמן שבו משתמשים במסד הנתונים. אם אתם לא רוצים להמיר את אזור הזמן, השאירו את השדה הזה ריק. מידע נוסף זמין בדף התיעוד שימוש בהגדרות אזור הזמן.
כדי לוודא שהחיבור הצליח, לוחצים על הכפתור בדיקת החיבור בקטע פרטי הסטטוס שבתחתית הדף הגדרות החיבור.
אם ב-Looker מוצגת ההודעה Can Connect, לוחצים על Connect כדי ליצור את החיבור.
החיבור למסד הנתונים יתווסף לרשימה בדף Admin (ניהול) בקטע Connections (חיבורים) ב-Looker.
תמיכה בתכונות
כדי ש-Looker יתמוך בתכונות מסוימות, גם הניב של מסד הנתונים צריך לתמוך בהן.
Oracle תומך בתכונות הבאות החל מגרסה 26.22 של Looker:
| תכונה | יש תמיכה? |
|---|---|
| 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 מצטברות | |
| אלפיות השנייה | |
| מיקרו-שניות | |
| תצוגות מהותיות | |
| מדדים להשוואה בין תקופות שונות | |
| ספירה משוערת של ערכים ייחודיים | |
| מודלים של ניתוח נתונים במסד הנתונים | |
| יומנים בהתאמה אישית |