डेटाबेस कनेक्टर को डिप्लॉय करना

Cloud Search डेटाबेस कनेक्टर का इस्तेमाल करके, अपने संगठन के डेटाबेस से डेटा खोजने और उसे इंडेक्स करने के लिए, Google Cloud Search सेट अप किया जा सकता है.

विचार करने वाली ज़रूरी बातें

Cloud Search डेटाबेस कनेक्टर को ऐसे किसी भी एनवायरमेंट में इंस्टॉल और चलाया जा सकता है जहां Java ऐप्लिकेशन चल सकते हैं. हालांकि, इसके लिए ज़रूरी है कि कनेक्टर के पास इंटरनेट और डेटाबेस, दोनों का ऐक्सेस हो.

सिस्टम की ज़रूरतें

सिस्टम की ज़रूरतें
ऑपरेटिंग सिस्टम Windows या Linux
एसक्यूएल डेटाबेस JDBC 4.0 या इसके बाद के वर्शन के साथ काम करने वाला कोई भी SQL डेटाबेस. जैसे:
  • MS SQL Server (2008, 2012, 2014, 2016)
  • Oracle (11g, 12c)
  • Google क्लाउड SQL
  • MySQL
सॉफ़्टवेयर JDBC ड्राइवर (इसे अलग से डाउनलोड और इंस्टॉल किया जाता है)

कनेक्टर डिप्लॉय करना

इस तरीके में बताया गया है कि कनेक्टर को कैसे इंस्टॉल किया जाए. साथ ही, इसे कॉन्फ़िगर करने का तरीका भी बताया गया है, ताकि यह आपके डेटाबेस को इंडेक्स कर सके और Cloud Search के उपयोगकर्ताओं को नतीजे दिखा सके.

ज़रूरी शर्तें

कनेक्टर को डिप्लॉय करने से पहले, यह जानकारी इकट्ठा करें:

पहला चरण. डेटाबेस कनेक्टर सॉफ़्टवेयर डाउनलोड और बिल्ड करना

  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

दूसरा चरण. डेटाबेस कनेक्टर को कॉन्फ़िगर करना

  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 के उपलब्ध कराए गए कनेक्टर पैरामीटर देखें.

तीसरा चरण. डेटाबेस कनेक्टर को चलाना

कमांड लाइन से कनेक्टर चलाएं:

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]

कनेक्टर, कॉन्फ़िगरेशन और शुरू करने से जुड़ी गड़बड़ियों की रिपोर्ट करता है. कनेक्टर के डेटाबेस को पहली बार ऐक्सेस करने की कोशिश करने पर, अन्य गड़बड़ियां दिखती हैं. जैसे, अमान्य एसक्यूएल सिंटैक्स.

कॉन्फ़िगरेशन पैरामीटर का रेफ़रंस

इस सेक्शन में, डेटाबेस कनेक्टर की कॉन्फ़िगरेशन फ़ाइल में इस्तेमाल किए गए पैरामीटर की सूची दी गई है.

डेटा सोर्स ऐक्सेस करने के पैरामीटर

सेटिंग पैरामीटर
डेटा सोर्स का आईडी api.sourceId = source-ID

ज़रूरी है. Cloud Search का सोर्स आईडी.

सेवा खाता api.serviceAccountPrivateKeyFile = path

ज़रूरी है. सेवा खाते की कुंजी वाली फ़ाइल का पाथ.

डेटाबेस ऐक्सेस करने के पैरामीटर

सेटिंग पैरामीटर
डेटाबेस का यूआरएल db.url = database-URL

ज़रूरी है. पूरा पाथ, जैसे कि jdbc:mysql://127.0.0.1/dbname.

क्रेडेंशियल db.user = username
db.password = password

ज़रूरी है. ज़रूरी रिकॉर्ड को पढ़ने का ऐक्सेस होना चाहिए.

ट्रैवर्सल एसक्यूएल क्वेरी पैरामीटर

यह कनेक्टर, रिकॉर्ड को ऐक्सेस करने के लिए SQL SELECT क्वेरी का इस्तेमाल करता है.

  • पूरा ट्रैवर्सल: इससे कॉन्फ़िगर किए गए हर रिकॉर्ड को पढ़ा जाता है. शुरुआती इंडेक्सिंग और समय-समय पर फिर से इंडेक्स करने के लिए ज़रूरी है.
  • इंक्रीमेंटल ट्रैवर्सल: यह सिर्फ़ नए बदलाव वाले रिकॉर्ड को पढ़ता है. इसके लिए, डेटाबेस में टाइमस्टैंप फ़ील्ड की ज़रूरत होती है.
सेटिंग पैरामीटर
पूरे डेटा को ट्रैवर्स करने वाली क्वेरी db.allRecordsSql = SELECT columns FROM table

ज़रूरी है. कॉन्टेंट, आईडी, और एएलसी के लिए इस्तेमाल किए गए सभी कॉलम शामिल करें.

इंक्रीमेंटल ट्रैवर्सल क्वेरी db.incrementalUpdateSql = SELECT columns FROM table WHERE update_time > ?

इंक्रीमेंटल शेड्यूल के लिए ज़रूरी है. "?" टाइमस्टैंप का एक ज़रूरी प्लेसहोल्डर है.

कॉलम की परिभाषा के पैरामीटर

सेटिंग पैरामीटर
सभी कॉलम db.allColumns = column-1, column-2, ...

ज़रूरी है. एसक्यूएल क्वेरी में रेफ़र किए गए सभी कॉलम की सूची दिखाता है.

यूनीक कुंजी वाले कॉलम db.uniqueKeyColumns = column-1

ज़रूरी है. इससे हर रिकॉर्ड के लिए यूनीक आईडी तय किया जाता है.

यूआरएल लिंक कॉलम url.columns = column-1

ज़रूरी है. इस विकल्प का इस्तेमाल करके, क्लिक किए जा सकने वाले खोज नतीजों के लिए इस्तेमाल किए गए कॉलम के बारे में जानकारी दी जाती है.

कॉन्टेंट फ़ील्ड

सेटिंग पैरामीटर
टाइटल कॉलम contentTemplate.db.title = column-name

ज़रूरी है. खोज के लिए इंडेक्स करने की सबसे ज़्यादा प्राथमिकता.

चार्जर की प्राथमिकता contentTemplate.db.quality.high = column-1

कॉलम को ज़्यादा, सामान्य या कम क्वालिटी के तौर पर मार्क करें.