‫Cloudera Impala 3.1 ואילך ו-Cloudera Impala עם Native Driver

כדי להמחיש ולנתח את הנתונים, אתם יכולים לחבר את מסדי הנתונים של Cloudera Impala ל-Looker. אפשר להגדיר את החיבורים האלה לניבים שונים של Impala. ‫Looker תומך ב-Cloudera Impala בגרסה 3.1 ואילך, כולל הגדרות של מנהלי התקנים רגילים ומותאמים. אין תמיכה בחיבורים לניבים ישנים יותר של Impala שאין להם מספר גרסה או מנהל התקן מקורי. שאילתות לניבים האלה יחזירו שגיאה.

ניבים שבהם משתמשים בהוראות האלה

Looker מתחבר למסדי הנתונים הבאים של Impala:

  • ‫Cloudera Impala מגרסה 3.1 ואילך
  • Cloudera Impala 3.1+‎ עם מנהל התקן מקורי
  • Cloudera Impala עם מנהל התקן מקורי

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

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

הגדרת Looker לחיבור ל-Cloudera Impala

Looker מתחבר למסדי נתונים באמצעות חיבור JDBC. במסדי נתונים של Impala, ‏ Looker מתחבר כברירת מחדל לשרת שבו פועל דמון impalad ביציאה 21050. מידע נוסף זמין בקטע Configuring Impala to work with JDBC במסמכי התיעוד שבאתר Cloudera.

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

הגדרת החיבור ל-Looker תלויה באמצעי האבטחה שבהם משתמשים:

התחברות לאשכול ללא Kerberos או אימות משתמשים

כדי להגדיר חיבור שלא משתמש ב-Kerberos או באימות משתמשים, פועלים לפי השלבים הבאים:

  1. בדף Connection Settings (הגדרות החיבור), משאירים את השדות Username (שם משתמש) ו-Password (סיסמה) ריקים. (הסימן * ליד שמות השדות מציין שהשדות האלה הם שדות חובה, אבל הם לא).
  2. בשדה Additional JDBC parameters, מזינים ;auth=noSasl.

מתבצע אימות של מחרוזת החיבור

כדי לאמת את מחרוזת החיבור של JDBC בקובצי היומן, בחלונית Admin ב-Looker, לוחצים על Log בתפריט הימני. אחר כך מסננים את היומן לפי מונח כמו jdbc או noSasl. שורה ביומן יכולה להיראות כך:

jdbc connect using: jdbc:hive2://<HOSTNAME>/<DATABASE_NAME>;auth=noSasl

מידע נוסף על הגדרת מסדי נתונים של Impala לעבודה עם JDBC זמין במסמכי התיעוד באתר החיצוני של Cloudera.

התחברות לאשכול שדורש אימות LDAP

באשכול שדורש אימות LDAP, כולל אשכול עם Apache Sentry ו-Kerberos, בדף Connection Settings, מזינים שם משתמש וסיסמה עם גישה לסכימות שאליהן Looker ייגש.

מתחברים לאשכול שמאובטח באמצעות Kerberos, אבל לא משתמשים ב-Apache Sentry

בדרך כלל, אימות Kerberos בסביבות Cloudera מטופל באמצעות Apache Sentry. פרטים נוספים זמינים במסמכי התיעוד של Cloudera.

כדי להגדיר את Looker כך שיתחבר ישירות למסדי נתונים של Impala באמצעות אימות Kerberos, צריך לפעול לפי השלבים שבדף הזה.

הגדרת התצורה של לקוח Kerberos

קודם כל, צריך לוודא שהתוכנה הנדרשת מותקנת ושהקבצים הדרושים נמצאים במחשב Looker.

לקוח Kerberos

כדי לוודא שתוכנת הלקוח של Kerberos מותקנת במחשב Looker, מנסים להריץ את הפקודה kinit. אם לקוח Kerberos לא מותקן, מתקינים את הקבצים הבינאריים של לקוח Kerberos.

לדוגמה, ב-Red Hat/CentOS, מריצים את הפקודה הבאה:

sudo yum install krb5-workstation krb5-libs krb5-auth-dialog
Java 8

צריך להתקין את Java 8 במכונת Looker וב-PATH וב-JAVA_HOME של משתמש Looker. אם צריך, מתקינים אותו באופן מקומי בספרייה looker.

Java Cryptography Extension
  1. מורידים ומתקינים את Java Cryptography Extension ‏ (JCE) ל-Java 8 מהאתר של Oracle.

    • מאתרים את הספרייה jre/lib/security של התקנת Java.
    • מסירים את קובצי ה-JAR הבאים מהספרייה הזו: local_policy.jar ו-US_export_policy.jar.
    • מחליפים את שני הקבצים האלה בקובצי ה-JAR שכלולים בהורדה של קובצי המדיניות של JCE Unlimited Strength Jurisdiction.

    יכול להיות שאפשר להשתמש בגרסאות של Java שקודמות ל-Java 8 עם JCE מותקן, אבל לא מומלץ לעשות את זה.

  2. מעדכנים את JAVA_HOME ואת PATH ב-~looker/.bash_profile כך שיצביעו על ההתקנה הנכונה של Java ו-source ~/.bash_profile, או יוצאים מהחשבון ונכנסים אליו שוב.

  3. מאמתים את הגרסה של Java באמצעות java -version.

  4. מאמתים את משתנה הסביבה JAVA_HOME באמצעות echo $JAVA_HOME.

gss-jaas.conf

יוצרים קובץ gss-jaas.conf בספרייה looker עם התוכן הבא:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true;
};

אם צריך, אפשר להוסיף את debug=true לקובץ הזה, באופן הבא:

com.sun.security.jgss.initiate {
    com.sun.security.auth.module.Krb5LoginModule required
    useTicketCache=true
    doNotPrompt=true
    debug=true;
};
krb5.conf

בשרת שבו פועל Looker צריך להיות גם קובץ krb5.conf תקין. כברירת מחדל, הקובץ הזה נמצא ב-/etc/krb5.conf. אם הוא נמצא במיקום אחר, צריך לציין את זה בסביבה (KRB5_CONFIG בסביבת המעטפת).

יכול להיות שתצטרכו להעתיק את הקובץ ממכונה אחרת של לקוח Kerberos.

lookerstart.cfg

מפנים לקבצים gss-jaas.conf ו-krb5.conf על ידי יצירת קובץ בספרייה looker (אותה ספרייה שמכילה את סקריפט לטעינה בזמן ההפעלה looker) בשם lookerstart.cfg שמכיל את השורות הבאות:

  JAVAARGS="-Djava.security.auth.login.config=/path/to/gss-jaas.conf -Djavax.security.auth.useSubjectCredsOnly=false -Djava.security.krb5.conf=/etc/krb5.conf"
  LOOKERARGS=""

אם קובץ krb5.conf לא נמצא ב-/etc/krb5.conf, צריך להוסיף גם את המשתנה הזה:

  -Djava.security.krb5.conf=/path/to/krb5.conf

כדי לנפות באגים, מוסיפים את המשתנים הבאים:

  -Dsun.security.jgss.debug=true -Dsun.security.krb5.debug=true

ואז מפעילים מחדש את Looker באמצעות ./looker restart.

אימות באמצעות Kerberos

אימות משתמשים
  1. אם krb5.conf לא נמצא ב-/etc/, צריך להשתמש במשתנה הסביבה KRB5_CONFIG כדי לציין את המיקום שלו.

  2. מריצים את הפקודה klist כדי לוודא שיש כרטיס תקין במטמון הכרטיסים של Kerberos.

  3. אם אין כרטיס, מריצים את הפקודה kinit username@REALM או kinit username כדי ליצור את הכרטיס.

  4. החשבון שמשמש את Looker הוא כנראה חשבון ללא ממשק משתמש, כך שאפשר לקבל קובץ keytab מ-Kerberos כדי לאחסן את פרטי הכניסה לשימוש לטווח ארוך. כדי לקבל את כרטיס Kerberos, משתמשים בפקודה כמו kinit -k -t looker_user.keytab username@REALM.

חידוש אוטומטי של הכרטיס

מגדירים משימת cron שפועלת מדי פעם כדי לשמור כרטיס פעיל במטמון הכרטיסים של Kerberos. התדירות שבה צריך להריץ את הפקודה הזו תלויה בהגדרות של האשכול. השדה klist צריך לציין מתי הכרטיסים יפוגו.

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

בקטע Admin ב-Looker, בוחרים באפשרות Connections ולוחצים על Add Connection.

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

  • שם: שם החיבור. כך החיבור יופיע במודל LookML.
  • ניב: Cloudera Impala 3.1+‎,‏ Cloudera Impala 3.1+‎ עם Native Driver או Cloudera Impala עם Native Driver.

  • מארח: שם המארח.

  • יציאה: יציאת מסד הנתונים (21050 כברירת מחדל).

  • מסד נתונים: הסכימה או מסד הנתונים שיוגדר להם מודל כברירת מחדל. אם לא צוין מסד נתונים לטבלה, זו תהיה ההנחה.

  • שם משתמש: משאירים את השדה הזה ריק.

  • סיסמה: משאירים את השדה הזה ריק.

  • הפעלת טבלאות נגזרות מתמידות (PDT): המתג הזה משמש להפעלת טבלאות נגזרות מתמידות (PDT). כשהטבלאות מסוג PDT מופעלות, בחלון Connection מופיעות הגדרות נוספות של PDT והקטע PDT Overrides.

  • מסד נתונים זמני: סכימה או מסד נתונים זמניים לאחסון של PDT. צריך ליצור אותו מראש.

  • פרמטרים נוספים של JDBC: מוסיפים פרמטרים נוספים של JDBC. רשימת הפרמטרים הנתמכים מופיעה בקטע פרמטרים נתמכים של JDBC שבדף הזה.

  • ‫SSL: מסמנים את התיבה כדי להשתמש בחיבורי SSL. אם אישור ה-SSL שלכם לא הונפק על ידי רשות אישורים מוכרת ואתם משתמשים באישור בהתאמה אישית, תצטרכו:

    • מעתיקים את קובץ האישור לשרת Looker. האפשרות הזו זמינה רק בפריסות של Looker באירוח בצד הלקוח.
    • מוסיפים את הפרמטרים הבאים לשדה Additional JDBC parameters:
  sslTrustStore=/path/to/your/trust_store.jks;trustStorePassword=yourpassword

במסמכי התיעוד של Cloudera מוסבר איך ליצור את מחרוזות ה-JDBC הנכונות למסדי נתונים של Impala.

  • אזור הזמן של מסד הנתונים: אזור הזמן של הנתונים שמאוחסנים במסד הנתונים. בדרך כלל אפשר להשאיר את השדה הזה ריק או להגדיר בו את UTC.

מומלץ ששם השרת (impala.company.com בדוגמה הזו) יהיה השם הקנוני של השרת, ושהתוצאות של שאילתת ה-DNS ההפוכה של כתובת ה-IP שלו יחזירו את השם הזה. עם זאת, שם השרת צריך להיות זה שמופיע בבקר הדומיין של Kerberos:

  nslookup servername  # get canonical server name and IP address

  nslookup ipaddress  # get the canonical name back

לפעמים שם השרת מוגדר כשם המארח ולא כשם דומיין שמוגדר במלואו. במקרה כזה, יכול להיות שיהיה צורך לשנות את הקבצים /etc/hosts ו-/etc/nsswitch.conf כדי לוודא שהחיפושים ההפוכים פועלים כמתוכנן.

בודקים את החיבור כדי לוודא שהוא מוגדר בצורה נכונה.

ניפוי באגים

משאבים

הרשאות לטבלאות PDT

למשתמש שמתחבר לסכימת ה-scratch של טבלאות נגזרות קבועות (PDT) צריכות להיות הרשאות קריאה/כתיבה.

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

ב-Cloudera Impala, ‏Looker תומך בפרמטרים הבאים של JDBC בשדה Additional JDBC parameters של החיבור. מידע על הפרמטרים האלה מופיע במסמכי התיעוד של מסד הנתונים.

  • AllowSelfSignedCerts
  • auth
  • AuthMech
  • CAIssuedCertNamesMismatch
  • httpPath
  • KrbHostFQDN
  • KrbRealm
  • KrbServiceName
  • principal
  • PWD
  • SocketTimeout
  • SSL
  • transportMode
  • UID
  • UseNativeQuery
  • UseSasl

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

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

Cloudera Impala עם מנהל התקן מקורי

החל מגרסה 26.20 של Looker, ‏Cloudera Impala עם Native Driver תומך בתכונות הבאות:

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

‫Cloudera Impala מגרסה 3.1 ואילך

החל מגרסה 26.20 של Looker, גרסה 3.1 ומעלה של Cloudera Impala תומכת בתכונות הבאות:

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

‫Cloudera Impala 3.1 ואילך עם Native Driver

החל מגרסה 26.20 של Looker, ‏Cloudera Impala 3.1+‎ עם מנהל התקן מקורי תומך בתכונות הבאות:

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

השלבים הבאים

אחרי שמקשרים את מסד הנתונים ל-Looker, מגדירים את אפשרויות הכניסה של המשתמשים.