Oracle Autonomous Data Warehouse on Cloud

ל-Looker יש תמיכה ברמת השילוב ב-Oracle ADWC. בדף הזה מוסבר איך לחבר את Looker ל-Oracle ADWC.

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

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

הגדרת מארח Looker לחיבורים

כל החיבורים ל-Oracle ADWC מחייבים אימות באמצעות SSL ואישור. כדי ש-Looker יוכל להתחבר למופע Oracle ADWC, צריך להוריד את קובצי הארנק של Oracle ולהתקין אותם בשרת Looker. אם אתם משתמשים ב-Looker באירוח בצד הלקוח, תצטרכו אדמין עם גישה לשרת Looker כדי לעשות את זה. אם אתם משתמשים ב-Looker בשרתים של Looker, פנו לתמיכה של Looker.

כדי להתקין את ארנק Oracle בשרת Looker:

  1. מורידים את ארנק Oracle למחשב המקומי. יווצר קובץ ZIP בשם Wallet_databasename.zip או שם דומה.

  2. בשרת Looker, יוצרים ספרייה שתכיל את קובץ ה-ZIP של הארנק:

    mkdir /home/looker/looker/credentials
    
  3. מעתיקים את קובץ ה-ZIP של הארנק מהמחשב המקומי לשרת Looker. בדוגמה הזו נעשה שימוש ב-scp והקובץ ממוקם ב-/home/looker/looker/credentials:

    scp Wallet_databasename.zip username@remotehost:/home/looker/looker/credentials
    
  4. פותחים את קובץ ה-ZIP של הארנק. בדוגמה הזו נעשה שימוש בפקודה unzip:

    cd /home/looker/looker/credentials
    unzip Wallet_databasename.zip
    
  5. מאמתים את התוכן של הארנק באמצעות הפקודה ls. אלה הקבצים שצריכים להיות לכם:

     ls
    
     cwallet.sso  keystore.jks      sqlnet.ora    truststore.jks
     ewallet.p12  ojdbc.properties  tnsnames.ora
    

    ‫Looker מתחבר ל-Oracle ADWC באמצעות Oracle Wallets עם JDBC Thin Driver 18.3. לשם כך, תצטרכו את הכינוי של Transparent Network Substrate ‏ (TNS) של רמת השירות Oracle ADWC עבור מסד הנתונים ואת הנתיב לקבצי הארנק של Oracle.

  6. כדי לקבל את הכינוי TNS של מסד הנתונים, מריצים את הפקודה הבאה:

    cat tnsnames.ora
    

    יהיו שלוש כתובות TNS חלופיות לבחירה: dbname_high,‏ dbname_medium ו-dbname_low. הכתובות האלה תואמות לרמות שירות שונות. הפרוטוקול, המארח, היציאה, שם השירות ופרטי ה-SSL כלולים בקובץ הזה. בדוגמה הזו נשתמש ב-dbname_medium.

יצירת משתמש 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=&apos;LOOKER&apos;;

CREATE OR REPLACE SYNONYM LOOKER.LOOKER_SQL FOR LOOKER_SQL;

GRANT SELECT ON LOOKER.LOOKER_SQL TO LOOKER;

-- Pay special attention to the 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 ADWC deployment
    "SERIAL#",
    -- If using a clustered Oracle ADWC deployment
    (SERIAL# || ',' || INST_ID) AS "SERIAL#",
    AUDSID
  -- If using a single node Oracle ADWC deployment
  FROM V$SESSION
  -- If using a clustered Oracle ADWC deployment
  FROM GV$SESSION
  WHERE
    USERNAME=&apos;LOOKER&apos;;

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;

בהתאם להגדרות של מסד הנתונים של Oracle, יכול להיות שהקידומת SYS תהיה SYSDBA, ADMIN או לא נחוצה.

הגדרה של טבלאות נגזרות מתמידות (PDT)

כדי להפעיל טבלאות נגזרות מתמידות, צריך לתת למשתמש ב-Looker את ההרשאות UNLIMITED TABLESPACE ו-CREATE TABLE. הפקודות הבאות מבוססות על ההנחה ששם המשתמש ב-Looker הוא LOOKER:

GRANT UNLIMITED TABLESPACE TO LOOKER;
GRANT CREATE TABLE TO LOOKER;

הגדרת ביטול שאילתות

כדי להגדיר את התכונה 'הפסקת שאילתה', מנהל מסד הנתונים של 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 ADWC deployment
  FROM V$SESSION
  -- If using a clustered Oracle ADWC deployment
  FROM GV$SESSION
  WHERE
    username = USER
    AND sid = p_sid
    -- If using a single node Oracle ADWC deployment
    AND serial# = p_serial#;
    -- If using a clustered Oracle ADWC deployment
    AND (SERIAL# || ',' || INST_ID) = p_serial#;

  IF (ignore = 1)
  THEN
    dbms_sql.parse(cursor_name,
                   &apos;ALTER SYSTEM KILL SESSION &apos;&apos;&apos;
                   || p_sid || &apos;,&apos; || p_serial# || &apos;&apos;&apos;&apos;,
                   dbms_sql.native);
    ignore := dbms_sql.execute(cursor_name);
  ELSE
    raise_application_error(-20001,
                            &apos;You do not own session &apos;&apos;&apos; ||
                            p_sid || &apos;,&apos; || p_serial# ||
                            &apos;&apos;&apos;&apos;);
  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;

בהתאם להגדרות של מסד הנתונים של Oracle, יכול להיות שהקידומת SYS תהיה SYSDBA, ADMIN או לא נחוצה.

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

כדי ליצור את החיבור מ-Looker למסד הנתונים:

  1. בקטע ניהול ב-Looker, בוחרים באפשרות חיבורים ואז לוחצים על הוספת חיבור.
  2. ממלאים את פרטי החיבור. רוב ההגדרות משותפות לרוב הניבים של מסדי הנתונים. מידע נוסף זמין בדף חיבור Looker למסד הנתונים. ההגדרות הבאות ספציפיות ל-Oracle ADWC:

    • ‫Dialect: ‏ Oracle ADWC.
    • שימוש ב-TNS: הפעלת חיבורים של Transparent Network Substrate‏ (TNS).
    • מארח: שם המארח או כינוי TNS. בדוגמה הזו, dbname_medium.
    • יציאה: משאירים את ברירת המחדל. Looker ימצא את היציאה מקובץ tnsnames.ora.
    • שם השירות: משאירים את השדה ריק. Looker ימצא את שם השירות מקובץ tnsnames.ora.
    • שם משתמש: שם המשתמש במסד הנתונים או מסד נתונים זמני אם מופעלים כללי PDT.
    • סיסמה: סיסמת משתמש מסד הנתונים.
    • הפעלת PDT: משתמשים במתג הזה כדי להפעיל טבלאות נגזרות מתמידות. כשההגדרה PDT מופעלת, בחלון Connection מופיעות הגדרות נוספות של PDT והקטע PDT Overrides.
    • ‫Temp Database: ב-Oracle, משתמש הוא סכימה, ולכן צריך לציין את השם של משתמש מסד הנתונים. בדוגמה הזו, צריך להשתמש בערך הסכימה הזמנית LOOKER.
    • פרמטרים נוספים של JDBC: משאירים את השדה הזה ריק, כי Oracle לא תומכת בפרמטרים נוספים של JDBC.
    • ‫SSL ואימות SSL: אפשר להתעלם מהשדות האלה. Looker תמיד ישתמש ב-SSL עם Oracle ADWC.
  3. כדי לוודא שהחיבור בוצע בהצלחה, לוחצים על הלחצן בדיקת החיבור בקטע פרטי הסטטוס בחלק התחתון של הדף הגדרות החיבורים.

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

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

תמיכה בתכונות

כדי ש-Looker יתמוך בתכונות מסוימות, הדיאלקט של מסד הנתונים צריך לתמוך בהן גם כן.

התכונות הבאות נתמכות ב-Oracle ADWC החל מ-Looker 26.18:

התכונה נתמך?
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 מצטברות
אלפיות השנייה
מיקרו-שניות
תצוגות מהותיות
מדדים של השוואה בין תקופות שונות
ספירה משוערת של ערכים ייחודיים
מודלים אנליטיים במסד הנתונים
יומנים בהתאמה אישית