क्लिकहाउस क्या है?
क्लिकहाउस एक ओपन-सोर्स कॉलम-ओरिएंटेड डीबीएमएस (या डेटाबेस मैनेजमेंट सिस्टम) है जो मुख्य रूप से OLAP (या ऑनलाइन एनालिटिकल प्रोसेसिंग ऑफ क्वेश्चन) के लिए उपयोग किया जाता है। यह रीयल-टाइम विश्लेषणात्मक डेटा की तीव्र पीढ़ी को प्रज्वलित करने और SQL प्रश्नों का उपयोग करके रिपोर्टिंग करने में सक्षम है। यह दोष सहिष्णु, मापनीय, अत्यधिक विश्वसनीय है और इसमें एक सुविधा संपन्न टूल सेट है।
एक नियमित डेटाबेस में, डेटा को तालिकाओं, स्तंभों और पंक्तियों में संग्रहीत किया जाता है। एक तालिका में, संबंधित मान भौतिक रूप से एक पंक्ति में कंधे से कंधा मिलाकर संग्रहीत होते हैं, जो कि यह कैसे संचालित होता है इसके लिए महत्वपूर्ण है। इस प्रकार अधिकांश स्ट्रिंग प्रकार के डेटाबेस काम करते हैं।
डेटाबेस के इस रूप के कुछ उदाहरण हैं:
- MySQL
- पोस्टग्रेज
- SQLite
डेटा को कॉलमर डेटाबेस में नीचे दिखाए अनुसार संग्रहीत किया जाता है:
यह समान दिखता है, लेकिन अंतर इस प्रकार हैं:विभिन्न स्तंभों के मान अलग-अलग संग्रहीत किए जाते हैं, जबकि एक स्तंभ के डेटा को एक साथ संग्रहीत किया जाता है। स्तंभ-उन्मुख तालिकाओं के उदाहरण:
- वर्टिका
- InfiniDB
- Google डरमेल
इस तरह के DBMS के स्टोर ब्लॉक में रिकॉर्ड करते हैं, पंक्तियों के बजाय कॉलम द्वारा समूहीकृत होते हैं। कॉलम के लिए डेटा लोड नहीं करके, वे क्वेरी चलाते समय डेटा को पढ़ने में कम समय व्यतीत करते हैं, जिससे डीबीएमएस डेटा की गणना कर सकते हैं और ब्लॉक में समूहीकृत डेटाबेस की तुलना में परिणाम बहुत तेजी से वापस कर सकते हैं। आमतौर पर, कॉलम-ओरिएंटेड डेटाबेस को OLAP परिदृश्यों में सबसे अच्छा लागू किया जाता है, जहां वे आमतौर पर स्ट्रिंग प्रकार के डेटाबेस की तुलना में अधिकांश प्रश्नों को संसाधित करने में 100 गुना तेज होते हैं।
जैसा कि हम ऊपर दिए गए उदाहरणों से देख सकते हैं, OLAP हमें बड़ी मात्रा में डेटा को व्यवस्थित करने और जटिल प्रश्नों को एक विशिष्ट डेटाबेस की तुलना में तेजी से परिमाण के कई ऑर्डर करने की अनुमति देता है। इसलिए, डेटा का विश्लेषण करने और या व्यावसायिक विश्लेषण की आवश्यकता होने पर बड़ी मात्रा में इनपुट के साथ काम करने के लिए यह बेहद उपयोगी है।
एसक्यूएल उपयोग
क्लिकहाउस एसक्यूएल की एक बोली का उपयोग करता है, जो मानक संरचित क्वेरी भाषा के समान है, लेकिन इसमें अतिरिक्त एक्सटेंशन शामिल हैं:विभिन्न सरणी, उच्च-क्रम फ़ंक्शन, नेस्टेड संरचनाएं, यूआरएल के साथ काम करने के लिए कार्य, और बाहरी शब्दकोश के साथ काम करने की क्षमता, आदि.
जबकि हम गति और बड़ी डेटा प्रोसेसिंग प्राप्त करते हैं, हम निम्नलिखित विकल्पों सहित अन्य पहलुओं को भी खो देते हैं:
- लेन-देन की कमी।
- स्पष्ट कास्टिंग की आवश्यकता के साथ मजबूत डेटा प्रकार।
- कुछ कार्यों के लिए मध्यवर्ती डेटा को RAM में संग्रहीत करना चाहिए।
- एक पूर्ण क्वेरी अनुकूलक का अभाव।
- डेटाबेस में डेटा का पॉइंट रीडिंग।
इसके बावजूद, क्लिकहाउस उच्च प्रदर्शन का प्रदर्शन करता है और अपने कई प्रतिस्पर्धियों के खिलाफ जीतता है। ClickHouse को Yandex.Metrica के लिए वेब एनालिटिक्स में समस्याओं को हल करने के लिए विकसित किया गया था, जो दुनिया में तीसरा सबसे लोकप्रिय वेब एनालिटिक्स सिस्टम है। यह क्लाउडफ्लेयर द्वारा अपने उपयोगकर्ताओं के लिए वेबसाइट के आंकड़ों को संसाधित करने के लिए भी उपयोग में है।
आवश्यकताएं
स्थापित करने के लिए, हमें चाहिए:
- कम से कम 2 जीबी रैम का इस्तेमाल करने वाला 2 कोर सर्वर
- उबंटू 20.04 एलटीएस ओएस
- रूट उपयोगकर्ता खाते तक पहुंच (जैसा कि सभी क्रियाएं रूट के रूप में की जाती हैं)।
उबंटू 20.04 पर क्लिकहाउस इंस्टालेशन
इंस्टॉल करने से पहले, हम सर्वर पर सिस्टम और पैकेज को अपडेट करेंगे।
root@host:~# apt update && apt -y upgrade
Hit:1 http://by.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://by.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://by.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]
Hit:5 https://download.docker.com/linux/ubuntu focal InRelease
Hit:6 https://debian.neo4j.com stable InRelease
Fetched 109 kB in 0s (231 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@host:~#
यांडेक्स क्लिकहाउस के नवीनतम संस्करण के साथ एक भंडार रखता है, इसलिए हमें इसे जोड़ने की जरूरत है। इसके अलावा, रिपॉजिटरी की जांच करने और क्लिकहाउस और भविष्य के अपडेट को सुरक्षित रूप से स्थापित करने के लिए एक जीपीजी कुंजी जोड़ें।
root@host:~# apt-key adv --keyserver keyserver.ubuntu.com --recv E0C56BD4
Executing: /tmp/apt-key-gpghome.5KK4WZQb0R/gpg.1.sh --keyserver keyserver.ubuntu.com --recv E0C56BD4
gpg: key C8F1E19FE0C56BD4: public key "ClickHouse Repository Key <[email protected]>" imported
gpg: Total number processed: 1
gpg: imported: 1
root@host:~#
एपीके भंडारों की सूची में भंडार जोड़ें।
root@host:~# echo "deb http://repo.yandex.ru/clickhouse/deb/stable/ main/" | tee /etc/apt/sources.list.d/clickhouse.list
deb http://repo.yandex.ru/clickhouse/deb/stable/ main/
root@host:~#
इसके बाद, हम अपने सर्वर पैकेज को अपडेट करते हैं।
root@host:~# apt update
Hit:1 http://by.archive.ubuntu.com/ubuntu focal InRelease
Hit:2 http://by.archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:3 http://by.archive.ubuntu.com/ubuntu focal-backports InRelease
Get:4 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]
Ign:5 http://repo.yandex.ru/clickhouse/deb/stable main/ InRelease
Get:6 http://repo.yandex.ru/clickhouse/deb/stable main/ Release [749 B]
Get:7 http://repo.yandex.ru/clickhouse/deb/stable main/ Release.gpg [836 B]
Hit:8 https://download.docker.com/linux/ubuntu focal InRelease
Get:9 http://repo.yandex.ru/clickhouse/deb/stable main/ Packages [152 kB]
Hit:10 https://debian.neo4j.com stable InRelease
Fetched 263 kB in 0s (536 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
root@host:~#
अंत में, हम क्लिकहाउस स्थापित कर सकते हैं। संकेत मिलने पर पासवर्ड दर्ज करें।
root@host:~# apt install -y clickhouse-server clickhouse-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
clickhouse-common-static
Suggested packages:
clickhouse-common-static-dbg
The following NEW packages will be installed:
clickhouse-client clickhouse-common-static clickhouse-server
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 119 MB of archives.
After this operation, 401 MB of additional disk space will be used.
...
Preconfiguring packages ...
Selecting previously unselected package clickhouse-common-static.
(Reading database ... 164995 files and directories currently installed.)
Preparing to unpack .../clickhouse-common-static_20.12.5.14_amd64.deb ...
Unpacking clickhouse-common-static (20.12.5.14) ...
Selecting previously unselected package clickhouse-client.
Preparing to unpack .../clickhouse-client_20.12.5.14_all.deb ...
Unpacking clickhouse-client (20.12.5.14) ...
Selecting previously unselected package clickhouse-server.
Preparing to unpack .../clickhouse-server_20.12.5.14_all.deb ...
Unpacking clickhouse-server (20.12.5.14) ...
Setting up clickhouse-common-static (20.12.5.14) ...
Setting up clickhouse-server (20.12.5.14) ...
ClickHouse init script has migrated to systemd. Please manually stop old server
and restart the service: killall clickhouse-server && sleep 5 && servi
ce clickhouse-server restart
Synchronizing state of clickhouse-server.service with SysV service script with /
lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable clickhouse-server
Created symlink /etc/systemd/system/multi-user.target.wants/clickhouse-server.se
rvice → /etc/systemd/system/clickhouse-server.service.
Copying ClickHouse binary to /usr/bin/clickhouse.new
/usr/bin/clickhouse already exists, will rename existing binary to /usr/bin/clic
khouse.old and put the new binary in place
Renaming /usr/bin/clickhouse.new to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-server already exists but it points to /clickhouse.
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-server to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-client already exists but it points to /clickhouse.
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-client to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-local already exists but it points to /clickhouse. W
ill replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-local to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-benchmark already exists but it points to /clickhous
e. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-benchmark to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-copier already exists but it points to /clickhouse.
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-copier to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-obfuscator already exists but it points to /clickhou
se. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-obfuscator to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-git-import to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-compressor already exists but it points to /clickhou
se. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-compressor to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-format already exists but it points to /clickhouse.
Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-format to /usr/bin/clickhouse.
Symlink /usr/bin/clickhouse-extract-from-config already exists but it points to
/clickhouse. Will replace the old symlink to /usr/bin/clickhouse.
Creating symlink /usr/bin/clickhouse-extract-from-config to /usr/bin/clickhouse.
Creating clickhouse group if it does not exist.
groupadd -r clickhouse
Creating clickhouse user if it does not exist.
useradd -r --shell /bin/false --home-dir /nonexistent -g clickhouse clickhouse
Will set ulimits for clickhouse user in /etc/security/limits.d/clickhouse.conf.
Creating config directory /etc/clickhouse-server/config.d that is used for tweak
s of main server configuration.
Creating config directory /etc/clickhouse-server/users.d that is used for tweaks
of users configuration.
Config file /etc/clickhouse-server/config.xml already exists, will keep it and e
xtract path info from it.
/etc/clickhouse-server/config.xml has /var/lib/clickhouse/ as data path.
/etc/clickhouse-server/config.xml has /var/log/clickhouse-server/ as log path.
Users config file /etc/clickhouse-server/users.xml already exists, will keep it
and extract users info from it.
chown --recursive clickhouse:clickhouse '/etc/clickhouse-server'
Creating log directory /var/log/clickhouse-server/.
Creating data directory /var/lib/clickhouse/.
Creating pid directory /var/run/clickhouse-server.
chown --recursive clickhouse:clickhouse '/var/log/clickhouse-server/'
chown --recursive clickhouse:clickhouse '/var/run/clickhouse-server'
chown clickhouse:clickhouse '/var/lib/clickhouse/'
Password for default user is already specified. To remind or reset, see /etc/cli
ckhouse-server/users.xml and /etc/clickhouse-server/users.d.
Setting capabilities for clickhouse binary. This is optional.
command -v setcap >/dev/null && echo > /tmp/test_setcap.sh && chmod a+x /tmp/te
st_setcap.sh && /tmp/test_setcap.sh && setcap 'cap_net_admin,cap_ipc_lock,cap_sy
s_nice+ep' /tmp/test_setcap.sh && /tmp/test_setcap.sh && rm /tmp/test_setcap.sh
&& setcap 'cap_net_admin,cap_ipc_lock,cap_sys_nice+ep' /usr/bin/clickhouse || ec
ho "Cannot set 'net_admin' or 'ipc_lock' or 'sys_nice' capability for clickhouse
binary. This is optional. Taskstats accounting will be disabled. To enable task
stats accounting you may add the required capability later manually."
ClickHouse has been successfully installed.
Start clickhouse-server with:
clickhouse start
Start clickhouse-client with:
clickhouse-client --password
Setting up clickhouse-client (20.12.5.14) ...
Processing triggers for systemd (245.4-4ubuntu3.3) ...
root@host:~#
क्लिकहाउस सेवा प्रारंभ करें
अब जब हमने क्लिकहाउस स्थापित कर लिया है तो चलिए इसे पृष्ठभूमि में चलाते हैं।
root@host:~# service clickhouse-server start
root@host:~#
स्थिति सत्यापित करें
इस चरण में, हम केवल यह सुनिश्चित करने के लिए जाँच करते हैं कि सब कुछ अपेक्षा के अनुरूप काम कर रहा है।
root@host:~# service clickhouse-server status
● clickhouse-server.service - ClickHouse Server (analytic DBMS for big data)
Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; ve>
Active: active (running) since Wed 2020-12-30 22:08:26 +03; 25s ago
Main PID: 5553 (clickhouse-serv)
Tasks: 48 (limit: 9489)
Memory: 45.8M
CGroup: /system.slice/clickhouse-server.service
└─5553 /usr/bin/clickhouse-server --config=/etc/clickhouse-server/>
сне 30 22:08:26 host clickhouse-server[5553]: Include not found: clickhouse_com>
сне 30 22:08:26 host clickhouse-server[5553]: Logging trace to /var/log/clickho>
сне 30 22:08:26 host clickhouse-server[5553]: Logging errors to /var/log/clickh>
сне 30 22:08:26 host clickhouse-server[5553]: Processing configuration file '/e>
сне 30 22:08:26 host clickhouse-server[5553]: Include not found: networks
сне 30 22:08:26 host clickhouse-server[5553]: Saved preprocessed configuration >
сне 30 22:08:28 host clickhouse-server[5553]: Processing configuration file '/e>
сне 30 22:08:28 host clickhouse-server[5553]: Include not found: clickhouse_rem>
сне 30 22:08:28 host clickhouse-server[5553]: Include not found: clickhouse_com>
сне 30 22:08:28 host clickhouse-server[5553]: Saved preprocessed configuration >
lines 1-19/19 (END)
नीचे दी गई पंक्तियाँ वे हैं जिन पर हमें पूरा ध्यान देने की आवश्यकता है।
Loaded: loaded (/etc/systemd/system/clickhouse-server.service; enabled; ve>
Active: active (running) since Wed 2020-12-30 22:08:26 +03; 25s ago
फ़ायरवॉल कॉन्फ़िगर करें
यदि आप फ़ायरवॉल का उपयोग नहीं कर रहे हैं, तो इस चरण को छोड़ दें। यदि आप दूरस्थ रूप से कनेक्ट करने की योजना बना रहे हैं और फ़ायरवॉल सक्षम है, तो यह चरण आवश्यक है। कॉन्फ़िगरेशन फ़ाइल खोलें और संपादित करें, और नीचे दी गई पंक्ति पर टिप्पणी न करें।
<!-- <listen_host>0.0.0.0</listen_host> →
एक बार संपादन पूरा हो जाने पर, फ़ाइल को Ctrl+S . का उपयोग करके सहेजें और Ctrl+X कुंजियाँ, और फिर क्लिकहाउस सेवा पुनः आरंभ करें।
root@host:~# service clickhouse-server restart
root@host:~#
बंदरगाह खोलें
इसके बाद, अपने आईपी पते तक पहुंच की अनुमति देने के लिए फ़ायरवॉल में पोर्ट 8123 खोलें।
ufw allow from YOUR_IP_SERVER/32 to any port 8123
फिर, क्लिकहाउस-क्लाइंट . के लिए पोर्ट 9000 खोलें आईपी पता।
root@host:~# ufw allow from 192.168.13.1/32 to any port 8123
Rules updated
root@host:~#
root@host:~# ufw allow from 192.168.13.1/32 to any port 9000
Rules updated
root@host:~#
कनेक्शन सत्यापित करें
यह जांचने के लिए कि दूरस्थ रूप से कनेक्ट होने पर सब कुछ काम करता है, निम्न क्वेरी का उपयोग करें।
clickhouse-client --host 192.168.13.1 --password
root@host:~# clickhouse-client --host 192.168.13.1 --password
Password for user (default):
Connecting to 192.168.13.1:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.
host :)
लर्निंग बेस कमांड और इंटरैक्शन
क्लिकहाउस में, हम संशोधित SQL सिंटैक्स का उपयोग करके डेटाबेस बना और छोड़ सकते हैं। आइए नीचे दिए गए उदाहरणों पर एक नज़र डालें। सबसे पहले, आइए ClickHouse से जुड़ें।
root@host:~# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.
host :)
डेटाबेस बनाएं
एक बार जब हम क्लिकहाउस कमांड लाइन में होते हैं, तो हम निम्नलिखित सिंटैक्स का उपयोग करके लिक्विडवेब नाम का एक डेटाबेस बनाते हैं।
host :) CREATE DATABASE liquidweb;
CREATE DATABASE liquidweb
Query id: 9169dbaa-402e-4d37-828f-5fde43d4a91d
Ok.
0 rows in set. Elapsed: 0.004 sec.
host :)
ClickHouse में, तालिका लगभग अन्य डेटाबेस की तरह ही होती है जिसमें संरचित प्रारूप में संबंधित डेटा का एक सेट होता है। हम कॉलम और उनके प्रकार निर्दिष्ट कर सकते हैं, पंक्तियाँ जोड़ सकते हैं और DB के विरुद्ध विभिन्न प्रकार की क्वेरी कर सकते हैं।
टेबल बनाएं
तालिका बनाने से पहले, उपयोग करने के लिए उपलब्ध कॉलम के प्रकारों को जानना और समझना महत्वपूर्ण है। निम्नलिखित कॉलम प्रकार व्यवहार्य हैं:
- UInt64 — इस तालिका का उपयोग 0 से 18446744073709551615 तक के पूर्णांकों को संग्रहीत करने के लिए किया जाता है।
- फ्लोट64 - फ्लोट64 का उपयोग करने वाली प्रत्येक तालिका 10.5, 18754.067, आदि जैसे फ्लोटिंग-पॉइंट नंबरों को संग्रहीत कर सकती है।
- स्ट्रिंग — यहाँ, स्ट्रिंग तालिका विभिन्न DBMS से VARCHAR, BLOB, CLOB और अन्य प्रकारों को बदल देती है
- तारीख — इस तालिका का उपयोग दिनांकों को YYYY-MM-DD प्रारूप में संग्रहीत करने के लिए किया जाता है।
- दिनांक समय - यहां, दिनांक और समय को अधिक सटीक YYYY-MM-DD HH:MM:SS प्रारूप में संग्रहीत करने के लिए दिनांक समय तालिका का उपयोग किया जाता है
डेटा संरचनाएं
क्लिकहाउस सटीक डेटा का वर्णन करके अंतर्निहित डेटा की संरचना को परिभाषित करता है, तालिका को क्वेरी करने की क्षमता, तालिका में समवर्ती पहुंच के इसके तरीके, और अनुक्रमणिका के लिए समर्थन। क्लिकहाउस में विभिन्न क्षमताएं हैं जो उपयोग की विभिन्न स्थितियों के लिए उपयुक्त हैं।
मर्ज ट्री
सबसे व्यापक रूप से इस्तेमाल किया जाने वाला तंत्र टेबल इंजन ऑपरेशन है जिसे मर्जट्री . कहा जाता है . यह फ़ंक्शन किसी तालिका में बड़ी मात्रा में डेटा सम्मिलित करने के लिए डिज़ाइन किया गया है। बड़ी मात्रा में रीयल-टाइम संपत्तियों को सम्मिलित करने के लिए इसके अनुकूलित समर्थन के साथ-साथ इसकी विश्वसनीयता और क्वेरी समर्थन के कारण उत्पादन डेटाबेस उपयोग के लिए इसकी अत्यधिक अनुशंसा की जाती है।
डेटाबेस चुनें
आइए आगे के अभ्यास के लिए आगे बढ़ें। सबसे पहले, एक डेटाबेस चुनें जिसमें हम एक टेबल बनाएंगे।
host :) USE liquidweb;
USE liquidweb
Query id: aba15bcb-224b-426d-9f74-350a88346115
Ok.
0 rows in set. Elapsed: 0.001 sec.
host :)
टेबल बनाएं
इसके बाद, हम सहयोगियों . नामक एक तालिका बनाते हैं ।
host :) CREATE TABLE colleagues ( id UInt64, name String, url String, created DateTime ) ENGINE = MergeTree() PRIMARY KEY id ORDER BY id;
CREATE TABLE colleagues
(
`id` UInt64,
`name` String,
`url` String,
`created` DateTime
)
ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id
Query id: 08223a2f-d365-43cb-8627-d22674d1c47c
Ok.
0 rows in set. Elapsed: 0.004 sec.
host :)
आइए देखें कि हमने किन मूल्यों को जोड़ा है।
- id - यह प्राथमिक कुंजी कॉलम है। प्रत्येक पंक्ति में एक विशिष्ट पहचानकर्ता होना चाहिए।
- नाम - एक स्ट्रिंग मान वाला कॉलम।
- url - एक स्ट्रिंग मान वाला कॉलम जिसमें प्रोफ़ाइल का लिंक होता है।
- बनाया - कर्मचारी के सिस्टम में आने की तिथि।
तालिका में कॉलम को परिभाषित करने के बाद, हम मर्जट्री . निर्दिष्ट करते हैं तालिका भंडारण के लिए तंत्र। इसके बाद, हम स्तंभों को निर्दिष्ट करते हैं, और फिर तालिका स्तर के स्तंभों को परिभाषित करते हैं।
- प्राथमिक कुंजी - प्राथमिक कुंजी कॉलम निर्दिष्ट करता है।
- आदेश द्वारा - संग्रहीत तालिका मान आईडी कॉलम द्वारा क्रमबद्ध होते हैं।
डेटा जोड़ें
अब हम टेबल के साथ काम कर सकते हैं। आइए सहयोगियों . में कुछ डेटा जोड़ें टेबल।
host :) INSERT INTO colleagues VALUES (1, 'margaret', 'http://1.com', '2021-01-01 00:01:01');
INSERT INTO colleagues VALUES
Query id: 42dbde52-6d7e-4849-ac5e-280590f3232d
Ok.
1 rows in set. Elapsed: 0.002 sec.
host :)
आइए और डेटा जोड़ें।
host :) INSERT INTO colleagues VALUES (2, 'john', 'http://2.com', '2021-01-01 00:01:01');
INSERT INTO colleagues VALUES
Query id: a9b34f78-2caa-4b41-bd4e-91bf8049a04b
Ok.
1 rows in set. Elapsed: 0.001 sec.
host :)
host :) INSERT INTO colleagues VALUES (3, 'kingsman', 'http://3.com', '2021-01-01 00:01:01');
INSERT INTO colleagues VALUES
Query id: df5133c1-b404-4569-8123-f0728c172c87
Ok.
1 rows in set. Elapsed: 0.003 sec.
host :)
host :) INSERT INTO colleagues VALUES (4, 'tor', 'http://4.com', '2021-01-01 00:01:01');
INSERT INTO colleagues VALUES
Query id: 14f56b86-fae7-4af2-b506-18c351b92853
Ok.
1 rows in set. Elapsed: 0.001 sec.
host :)
कॉलम जोड़ें
जब हमने कुछ मान जोड़े, तो हमने महसूस किया कि हम एक और कॉलम जोड़ना भूल गए हैं, इसलिए हमें इसे नीचे जोड़ना होगा।
host :) ALTER TABLE colleagues ADD COLUMN location String;
ALTER TABLE colleagues
ADD COLUMN `location` String
Query id: 002900f4-9fd9-4302-a10f-6aa5b818f9ae
Ok.
0 rows in set. Elapsed: 0.005 sec.
host :)
डेटा संपादित करें
अब हमें पुराने डेटा को किसी तरह बदलने की जरूरत है। संस्करण 19.13 में, क्लिकहाउस इसके कार्यान्वयन के कारण अलग-अलग पंक्तियों को अद्यतन करने और हटाने का समर्थन नहीं करता है। लेकिन, ClickHouse बल्क अपडेट और विलोपन का समर्थन करता है और इन कार्यों के लिए इसका अपना सिंटैक्स भी है।
अब हम अपनी लाइनें अपडेट करते हैं।
host :) ALTER TABLE colleagues UPDATE url ='http://1.com' WHERE id < 15;
ALTER TABLE colleagues
UPDATE url = 'http://1.com' WHERE id < 15
Query id: 6fc6620e-fd90-43aa-8d7f-8a34cfb73650
Ok.
0 rows in set. Elapsed: 0.004 sec.
host :)
कहां . के बाद , हम फ़िल्टर पैरामीटर सेट करते हैं और अनावश्यक पैरामीटर भी हटा सकते हैं।
host :) ALTER TABLE colleagues DELETE WHERE id < 2;
ALTER TABLE colleagues
DELETE WHERE id < 2
Query id: 354e27fc-70c9-480b-bb1d-067591924c6e
Ok.
0 rows in set. Elapsed: 0.005 sec.
host :)
कॉलम हटाएं
तालिका से कॉलम हटाने के लिए, निम्न कार्य करें।
host :) ALTER TABLE colleagues DROP COLUMN location;
ALTER TABLE colleagues
DROP COLUMN location
Query id: da361478-0619-4c31-8422-f59ee14a57d7
Ok.
0 rows in set. Elapsed: 0.008 sec.
host :)
क्वेरी के माध्यम से डेटा पुनर्प्राप्ति
इसके बाद, हम प्रश्नों का उपयोग करके डेटा पुनर्प्राप्ति प्रदर्शित करने के लिए आगे बढ़ते हैं। ClickHouse अपने परिवर्धन के साथ यहाँ SQL सिंटैक्स का उपयोग करता है। आइए कुछ बुनियादी जानकारी इकट्ठा करने का प्रयास करें।
host :) SELECT url, name FROM colleagues WHERE url = 'http://1.com' LIMIT 1;
SELECT
url,
name
FROM colleagues WHERE url = 'http://1.com'
LIMIT 1
Query id: 8a5cbf9a-f187-440c-9a60-2d23029b4bd1
┌─url──────────┬─name─┐
│ http://1.com │ john │
└──────────────┴──────┘
1 rows in set. Elapsed: 0.003 sec.
host :)
- चुनें - कई पैरामीटर चुनें।
- FROM - निर्धारित करें कि हमें कौन सी तालिका मान प्राप्त होगी।
- कहां - किस मान और कितना के संबंध में पैरामीटर और फ़िल्टर सेट करें।
हम अतिरिक्त खोज मापदंडों का भी उपयोग कर सकते हैं, जैसे:
- गिनती - शर्तों से मेल खाने वाली पंक्तियों की संख्या लौटाता है।
- योग - चयनित मानों का योग लौटाता है।
- औसत - चयनित वस्तुओं का औसत लौटाता है।
- uniq - मिलान की गई एकल पंक्तियों की अनुमानित संख्या लौटाएं।
- topK - एल्गोरिदम का उपयोग करके किसी विशिष्ट कॉलम के सबसे लगातार मूल्यों की एक सरणी देता है।
ड्रॉप टेबल और डेटाबेस
इसके बाद, हम टेबल और डेटाबेस छोड़ने के लिए आगे बढ़ते हैं। सबसे पहले, एक टेबल को डिलीट करते हैं।
host :) DROP TABLE colleagues;
DROP TABLE colleagues
Query id: 21048fe4-d379-48ac-b9a7-71f0b3fe93e1
Ok.
0 rows in set. Elapsed: 0.001 sec.
host :)
अब, डेटाबेस को हटा दें।
host :) DROP DATABASE liquidweb;
DROP DATABASE liquidweb
Query id: 4ad9a51a-f89d-4be5-be9c-92b8cb38614b
Ok.
0 rows in set. Elapsed: 0.001 sec.
host :)
डेटाबेस से बाहर निकलने के लिए, मानक 'निकास' मान दर्ज करें।
host :) exit
Bye.
root@host:~#
एक उपयोगकर्ता बनाएं
अब जब हमने सभी बुनियादी सुविधाओं को कवर कर लिया है, तो हम कई डेटाबेस उपयोगकर्ता बनाएंगे। क्लिकहाउस कॉन्फ़िगरेशन फ़ाइल निम्न पथ में स्थित हो सकती है /etc/clickhouse-client/config.xml. इस फ़ाइल पर जाएँ, इसे vim या nano से खोलें, और निम्न क्रम में मान निर्दिष्ट करें।
<config> <user>username</user> <password>password</password> <secure>False</secure></config>
हम फ़ाइल को संपादित करने के लिए नैनो संपादक का उपयोग करेंगे।
root@host:~# nano /etc/clickhouse-client/config.xml
root@host:~#
आवश्यक जानकारी दर्ज करें और फिर Ctrl+S . का उपयोग करके परिवर्तनों को सहेजें और Ctrl+X कुंजियाँ
क्लिकहाउस से कनेक्ट करें
अंत में, ClickHouse से कनेक्ट करने के लिए, टर्मिनल में निम्न कमांड दर्ज करें।
root@host:~# clickhouse-client -u margaret --password
ClickHouse client version 20.12.5.14 (official build).
Password for user (margaret):
Connecting to localhost:9440 as user margaret.
Connected to ClickHouse server version 20.12.5 revision 54442.
host :)
निष्कर्ष
इस ट्यूटोरियल में, हमने क्लिकहाउस के कई पहलुओं की खोज की। हमने पाया कि यह कैसे काम करता है, इसे कब लागू किया जा सकता है और किन परिस्थितियों में उपयोगी है। हमने पहचाना कि कैसे एक कुंजी, रिपॉजिटरी को जोड़ना है, और फिर क्लिकहाउस सॉफ़्टवेयर स्थापित करना है। इसी तरह, हम तब एक्सेस की अनुमति देने के लिए फ़ायरवॉल को सेट और कॉन्फ़िगर करते हैं। इसके अलावा, हमने डेटाबेस और टेबल बनाए, कॉलम और डेटा जोड़े, और फिर उन्हें अपडेट और डिलीट किया। अंत में, हमने दिखाया कि कॉन्फ़िगरेशन फ़ाइल में उपयोगकर्ता कैसे बनाएं।
हम होस्टिंग™ में सबसे मददगार इंसान होने पर गर्व करते हैं! हमारी सहायता टीम अनुभवी लिनक्स तकनीशियनों और प्रतिभाशाली सिस्टम प्रशासकों से भरी हुई है, जिन्हें इस लेख में चर्चा की गई कई वेब होस्टिंग तकनीकों का गहन ज्ञान है।
क्या आपको इस लेख के बारे में कोई पूछताछ करनी चाहिए, हम हमेशा इस लेख से संबंधित किसी भी प्रश्न की जानकारी प्रदान करने के लिए उपलब्ध है, 24 घंटे एक दिन, सप्ताह में 7 दिन साल में 365 दिन।
अगर आप पूरी तरह से प्रबंधित VPS सर्वर, क्लाउड डेडिकेटेड, VMWare प्राइवेट क्लाउड, प्राइवेट पैरेंट सर्वर, मैनेज्ड क्लाउड सर्वर या डेडिकेटेड सर्वर के मालिक हैं, और आप बताए गए किसी भी चरण को करने में असहज महसूस कर रहे हैं, हम इस प्रक्रिया में आपकी सहायता करने के लिए @800.580.4985, चैट या समर्थन टिकट पर फोन के माध्यम से संपर्क कर सकते हैं।