Skip to main content

QuestDB

در این آموزش نحوه‌ی راه‌اندازی QuestDB را در دارکوب بررسی می‌کنیم. پایگاه‌داده‌ی QuestDB برای کار با داده‌های سری زمانی بهینه‌سازی شده‌است. همچنین با پشتیبانی از اینترفیسهای PostgreSQL و InfluxDB امکان اتصال به ابزارها و کتابخانه‌های موجود برای این دیتابیس‌ها وجود دارد. طبق بنچمارک ارائه شده در صفحه‌ی بنچمارک وبسایت QuestDB بیشترین میزان درج در ثانیه (Ingestion Rate) روی یک ماشین را در مقایسه با دیتابیسهای ClickHouse, TimescaleDB, InfluxDB داراست. البته در No, QuestDB is not Faster than ClickHouse به صحت اجرا و نتایج این بنچمارک ایراداتی وارد شده هست.

برای آشنایی بیشتر با این نرم‌افزار به سایت QuestDB و ریپوی گیتهاب QuestDB مراجعه کنید.

ساخت

برای ساخت QuestDB ابتدا در بخش ساخت اپ گزینه‌ی "داکر ایمیج" را انتخاب کنید. سپس questdb/questdb را به عنوان ایمیج وارد کنید و نسخه‌ی دلخواه مثلا 6.2 را به عنوان تگ وارد کنید. می‌توانید نسخه‌های ممکن را با مراجعه به صفحه‌ی کوئست-دی‌بی در داکرهاب مشاهده کنید.

در مرحله بعد نام دلخواه اپ خود را وارد کنید و مقادیر زیر را در تب پورتها وارد کنید:

http : 9000
influxdb : 9009
postgres : 8812
metrics : 9003

برای مشاهده لیست متغیرهای محیطی ممکن به قسمت متغیرهای محیطی در مستندات مراجعه کنید. متغیرهای محیطی مهم‌تر شامل موارد زیر هستند:

QDB_PG_PASSWORD

تمام تنظیمات از طریق تغییر فایل conf/server.conf یا ست کردن متغیر محیطی متناظر، قابل تغییر هستند. توصیه می‌کنیم در ابتدای کار یکبار کل تنظیمات ممکن در صفحه‌ی تنظیمات QuestDB را مرور کنید.

در مرحله‌ی بعد باید منابع اپ را انتخاب کنید. همچنین یک دیسک برای پوشه‌ی /root/.questdb با اندازه دلخواه اضافه کنید. سپس با زدن دکمه‌ی «ساخت اپ» QuestDB ساخته و پس از چند ثانیه اجرا می‌شود.

روش مشابه برای ساخت، استفاده از روش «ساخت با داکرکامپوز» با محتوای زیر است:

version: "3.7"
services:
questdb:
image: questdb:6.2
environment:
QDB_PG_PASSWORD: PASSWORD
ports:
- 9000:9000
- 9009:9009
- 8812:8812
- 9003:9003
volumes:
- /tmp/questdb:/root/.questdb

اتصال

برای اتصال به اپ ساخته‌ شده از همان کلاستر و نیم‌اسپیس، می‌توانید از اسم اپ و پورت دلخواه استفاده کنید. مثلا برای اتصال به اینترفیس PostgreSQL باید آدرس زیر را بدهید:

questdb-test:8812

در صورتی‌ که می‌خواهید از خارج کلاستر به اپ جدید وصل شوید، می‌توانید از تب پورت‌ها امکان «آی‌پی خارجی» را فعال کنید. قبل از فعال‌سازی آی‌پی خارجی (دسترسی از اینترنت) مطمئن شوید که برای تمام پورتها امکان کنترل دسترسی تنظیم شده باشد. همچنین می‌توانید از طریق kubectl port-forward به این اپ متصل شوید.

QuestDB روی پورت http یک واسط کاربری گرافیکی هم ارائه می‌دهد:

برای دیدن نمونه‌های اتصال از زبانهای مختلف به مستندات QuestDB مراجعه کنید.