פריסת מחבר למסד נתונים

אתם יכולים להגדיר את Google Cloud Search כך שיגלה ויצור אינדקס של נתונים ממסדי הנתונים של הארגון באמצעות מחבר מסד הנתונים של Cloud Search.

שיקולים חשובים

אתם יכולים להתקין ולהפעיל את מחבר מסד הנתונים של Cloud Search כמעט בכל סביבה שבה אפשר להפעיל אפליקציות Java, כל עוד למחבר יש גישה לאינטרנט ולמסד הנתונים.

דרישות מערכת

דרישות מערכת
מערכת הפעלה Windows או Linux
מסד נתונים מסוג SQL כל מסד נתונים של SQL עם מנהל התקן שתואם ל-JDBC 4.0 ומעלה, כולל:
  • שרת MS SQL‏ (2008, ‏ 2012, ‏ 2014, ‏ 2016)
  • Oracle (11g, 12c)
  • Google Cloud SQL
  • MySQL
תוכנה מנהל התקן JDBC (הורדה והתקנה בנפרד)

פריסת המחבר

בשלבים הבאים מוסבר איך להתקין את המחבר ולהגדיר אותו כך שיבצע אינדוקס של מסדי הנתונים ויחזיר תוצאות למשתמשי Cloud Search.

דרישות מוקדמות

לפני שמפעילים את המחבר, אוספים את המידע הבא:

שלב 1. הורדה ובנייה של תוכנת המחבר למסד הנתונים

  1. משכפלים את מאגר המחברים מ-GitHub.

    $ git clone https://github.com/google-cloudsearch/database-connector.git
    $ cd database-connector

  2. כדי לבדוק את הגרסה שבחרתם:

    $ git checkout tags/v1-0.0.3

  3. בניית המחבר:

    $ mvn package
    כדי לדלג על בדיקות, משתמשים ב-mvn package -DskipTests.

  4. מחלצים את קובץ ה-ZIP של המחבר לתיקיית ההתקנה:

    $ cp target/google-cloudsearch-database-connector-v1-0.0.3.zip installation-dir
    $ cd installation-dir
    $ unzip google-cloudsearch-database-connector-v1-0.0.3.zip
    $ cd google-cloudsearch-database-connector-v1-0.0.3

שלב 2. הגדרת המחבר למסד הנתונים

  1. יוצרים קובץ טקסט בשם connector-config.properties (ברירת המחדל). ‫Google ממליצה על התוסף .properties או .config. שומרים אותו באותה ספרייה שבה נמצא המחבר.

  2. מוסיפים פרמטרים כצמדי מפתח/ערך. בקובץ צריך לציין גישה למקור הנתונים, גישה למסד הנתונים, הצהרת SQL מלאה על מעבר, שם של שדה תוכן והגדרות של עמודות.

    # Data source access
    api.sourceId=1234567890abcdef
    api.identitySourceId=0987654321lmnopq
    api.serviceAccountPrivateKeyFile=./PrivateKey.json
    
    # Database access
    db.url=jdbc:mysql://localhost:3306/mysql_test
    db.user=root
    db.password=passw0rd
    
    # Full traversal SQL statement
    db.allRecordsSql=select customer_id, first_name, last_name, phone from address_book
    
    # Column definitions and URL format
    db.allColumns=customer_id, first_name, last_name, phone
    db.uniqueKeyColumns=customer_id
    url.columns=customer_id
    
    # Content field
    contentTemplate.db.title=customer_id
    
    # Optional: ACLs
    defaultAcl.mode=fallback
    defaultAcl.public=true
    
    # Optional: traversal schedule
    schedule.traversalIntervalSecs=36000
    schedule.performTraversalOnStart=true
    

    פרמטרים ספציפיים למסד נתונים מפורטים בחומר עזר בנושא פרמטרים של הגדרות אישיות. פרמטרים נפוצים מפורטים במאמר פרמטרים של מחברים שסופקו על ידי Google.

שלב 3. הפעלת מחבר מסד הנתונים

מריצים את המחבר משורת הפקודה:

java
   -cp "google-cloudsearch-database-connector-v1-0.0.3.jar:mysql-connector-java-5.1.41-bin.jar"
   com.google.enterprise.cloudsearch.database.DatabaseFullTraversalConnector
   [-Dconfig=mysql.config]

המחבר מדווח על שגיאות בהגדרה ובהפעלה. שגיאות אחרות, כמו תחביר SQL לא תקין, מופיעות כשהמחבר מנסה לגשת למסד הנתונים בפעם הראשונה.

הסבר על פרמטרים להגדרה

בקטע הזה מפורטים הפרמטרים שמשמשים בקובץ התצורה של מחבר מסד הנתונים.

פרמטרים של גישה למקור נתונים

הגדרה פרמטר
מזהה מקור הנתונים api.sourceId = source-ID

חובה. מזהה המקור ב-Cloud Search.

חשבון שירות api.serviceAccountPrivateKeyFile = path

חובה. הנתיב לקובץ המפתח של חשבון השירות.

פרמטרים של גישה למסד נתונים

הגדרה פרמטר
כתובת URL של מסד נתונים db.url = database-URL

חובה. הנתיב המלא, למשל jdbc:mysql://127.0.0.1/dbname.

פרטי כניסה db.user = username
db.password = password

חובה. צריך לתת הרשאת קריאה לרשומות הרלוונטיות.

פרמטרים של שאילתת SQL למעקב אחר נתיב

המחבר משתמש בשאילתות SQL SELECT כדי לעבור בין הרשומות.

  • סריקה מלאה: קריאה של כל רשומה מוגדרת. נדרש לאינדוקס ראשוני ולאינדוקס חוזר תקופתי.
  • מעבר מצטבר: קריאה רק של רשומות ששונו לאחרונה. נדרשים שדות של חותמות זמן במסד הנתונים.
הגדרה פרמטר
שאילתת מעבר מלא db.allRecordsSql = SELECT columns FROM table

חובה. כוללים את כל העמודות שמשמשות לתוכן, למזהים ולרשימות ACL.

שאילתת מעבר מצטבר db.incrementalUpdateSql = SELECT columns FROM table WHERE update_time > ?

חובה ללוחות זמנים מצטברים. ‫'?' הוא placeholder חובה של חותמת זמן.

פרמטרים של הגדרת עמודה

הגדרה פרמטר
כל העמודות db.allColumns = column-1, column-2, ...

חובה. רשימה של כל העמודות שאליהן מתבצעת הפניה בשאילתות SQL.

עמודות מפתח ייחודיות db.uniqueKeyColumns = column-1

חובה. השדה הזה מגדיר את המזהה הייחודי של כל רשומה.

עמודה של קישור לכתובת URL url.columns = column-1

חובה. מציינת את העמודה שמשמשת לתוצאות חיפוש שאפשר ללחוץ עליהן.

שדות תוכן

הגדרה פרמטר
עמודת כותרת contentTemplate.db.title = column-name

חובה. העדיפות הכי גבוהה לאינדקס החיפוש.

קביעת סדרי עדיפויות contentTemplate.db.quality.high = column-1

הגדרת עמודות כאיכות גבוהה, בינונית או נמוכה.