Cloud Search डेटाबेस कनेक्टर का इस्तेमाल करके, अपने संगठन के डेटाबेस से डेटा खोजने और उसे इंडेक्स करने के लिए, Google Cloud Search सेट अप किया जा सकता है.
विचार करने वाली ज़रूरी बातें
Cloud Search डेटाबेस कनेक्टर को ऐसे किसी भी एनवायरमेंट में इंस्टॉल और चलाया जा सकता है जहां Java ऐप्लिकेशन चल सकते हैं. हालांकि, इसके लिए ज़रूरी है कि कनेक्टर के पास इंटरनेट और डेटाबेस, दोनों का ऐक्सेस हो.
सिस्टम की ज़रूरतें
| सिस्टम की ज़रूरतें | |
|---|---|
| ऑपरेटिंग सिस्टम | Windows या Linux |
| एसक्यूएल डेटाबेस | JDBC 4.0 या इसके बाद के वर्शन के साथ काम करने वाला कोई भी SQL डेटाबेस. जैसे:
|
| सॉफ़्टवेयर | JDBC ड्राइवर (इसे अलग से डाउनलोड और इंस्टॉल किया जाता है) |
कनेक्टर डिप्लॉय करना
इस तरीके में बताया गया है कि कनेक्टर को कैसे इंस्टॉल किया जाए. साथ ही, इसे कॉन्फ़िगर करने का तरीका भी बताया गया है, ताकि यह आपके डेटाबेस को इंडेक्स कर सके और Cloud Search के उपयोगकर्ताओं को नतीजे दिखा सके.
ज़रूरी शर्तें
कनेक्टर को डिप्लॉय करने से पहले, यह जानकारी इकट्ठा करें:
- Google Workspace की निजी कुंजी (जिसमें सेवा खाते का आईडी शामिल होता है). Cloud Search API का ऐक्सेस कॉन्फ़िगर करना लेख पढ़ें.
- Google Workspace डेटा सोर्स का आईडी. खोज के लिए डेटा सोर्स जोड़ना लेख पढ़ें.
पहला चरण. डेटाबेस कनेक्टर सॉफ़्टवेयर डाउनलोड और बिल्ड करना
GitHub से कनेक्टर की रिपॉज़िटरी क्लोन करें.
$ git clone https://github.com/google-cloudsearch/database-connector.git $ cd database-connector
चुने गए वर्शन को देखें:
$ git checkout tags/v1-0.0.3
कनेक्टर बनाएं:
टेस्ट को छोड़ने के लिए,$ mvn package
mvn package -DskipTestsका इस्तेमाल करें.कनेक्टर की 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
दूसरा चरण. डेटाबेस कनेक्टर को कॉन्फ़िगर करना
connector-config.propertiesनाम की टेक्स्ट फ़ाइल बनाएं (डिफ़ॉल्ट रूप से). Google,.propertiesया.configएक्सटेंशन का सुझाव देता है. इसे कनेक्टर के साथ एक ही डायरेक्ट्री में रखें.पैरामीटर को की-वैल्यू पेयर के तौर पर जोड़ें. फ़ाइल में डेटा सोर्स का ऐक्सेस, डेटाबेस का ऐक्सेस, पूरा ट्रैवर्सल 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
ज़रूरी है. पूरा पाथ, जैसे कि |
| क्रेडेंशियल | db.user = usernamedb.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
कॉलम को ज़्यादा, सामान्य या कम क्वालिटी के तौर पर मार्क करें. |