بيئة تطوير SQL كاملة الميزات تعمل بالكامل في الطرفية. تتميز بتمييز الصيغة، والإكمال التلقائي، وشريط جانبي لكتالوج البيانات، ومحولات قواعد بيانات متعددة، وتصدير النتائج — بدون حاجة لواجهة رسومية.
| الطريقة | الأمر |
|---|
| uv (موصى به) | uv tool install harlequin |
| pip | pip install harlequin |
| pipx | pipx install harlequin |
| Homebrew | brew install harlequin |
| Poetry | poetry add harlequin |
# DuckDB (مدمج، لا حاجة لتثبيت إضافي)
uv tool install harlequin
# محول SQLite
uv tool install 'harlequin[sqlite]'
# محول PostgreSQL
uv tool install 'harlequin[postgres]'
# محول MySQL
uv tool install 'harlequin[mysql]'
# محولات متعددة معًا
uv tool install 'harlequin[postgres,mysql,sqlite,s3]'
المتطلبات: Python 3.9+
| الأمر | الوصف |
|---|
harlequin | الفتح مع قاعدة بيانات DuckDB في الذاكرة |
harlequin mydb.duckdb | فتح ملف قاعدة بيانات DuckDB |
harlequin -a sqlite mydb.db | فتح قاعدة بيانات SQLite |
harlequin -a sqlite | فتح قاعدة بيانات SQLite في الذاكرة |
harlequin -a postgres -h localhost -p 5432 -U user -d mydb | الاتصال بـ PostgreSQL |
harlequin -a mysql -h localhost -u root mydb | الاتصال بـ MySQL |
harlequin --theme monokai | استخدام سمة ألوان محددة |
harlequin --locale en_US | تعيين صيغة تنسيق الأرقام |
harlequin --help | إظهار جميع خيارات سطر الأوامر |
| مفتاح | الوصف |
|---|
Ctrl+Enter | تنفيذ الاستعلام الحالي |
Ctrl+j | تنفيذ الاستعلام الحالي (بديل) |
Ctrl+o | فتح ملف SQL |
Ctrl+s | حفظ الاستعلام الحالي في ملف |
Ctrl+n | علامة تبويب استعلام جديدة |
Ctrl+w | إغلاق علامة تبويب الاستعلام الحالية |
Ctrl+k | التبديل إلى علامة تبويب الاستعلام التالية |
Tab | قبول اقتراح الإكمال التلقائي |
Escape | رفض قائمة الإكمال التلقائي |
F1 | إظهار المساعدة / التوثيق السياقي |
| مفتاح | الوصف |
|---|
Ctrl+r | تبديل التركيز إلى لوحة النتائج |
Ctrl+e | تبديل التركيز إلى محرر الاستعلام |
| مفاتيح الأسهم | التنقل في جدول النتائج |
Ctrl+c | نسخ الخلية (الخلايا) المحددة |
| مفتاح | الوصف |
|---|
Ctrl+q | الخروج من Harlequin |
Ctrl+b | تبديل الشريط الجانبي لكتالوج البيانات |
F1 | المساعدة |
DuckDB هو المحول الافتراضي ويدعم ميزات قوية:
-- قراءة ملفات CSV مباشرة
SELECT * FROM read_csv_auto('data.csv');
-- قراءة ملفات Parquet
SELECT * FROM read_parquet('data.parquet');
-- قراءة ملفات JSON
SELECT * FROM read_json_auto('data.json');
-- الاستعلام عن ملفات بعيدة
SELECT * FROM read_csv_auto('https://example.com/data.csv');
-- الاستعلام عن ملفات S3 (مع محول s3)
SELECT * FROM read_parquet('s3://bucket/data.parquet');
-- تجميع البيانات من ملفات متعددة
SELECT * FROM read_csv_auto('logs/*.csv');
إنشاء ملف تكوين لحفظ ملفات تعريف الاتصال المستخدمة بشكل متكرر:
# ~/.config/harlequin/config.toml
# (أو استخدام علامة --config لتحديد المسار)
[profiles.local-pg]
adapter = "postgres"
host = "localhost"
port = 5432
user = "myuser"
database = "mydb"
[profiles.prod-readonly]
adapter = "postgres"
host = "prod-db.example.com"
port = 5432
user = "readonly"
database = "production"
theme = "monokai"
[profiles.duckdb-analytics]
adapter = "duckdb"
conn_str = ["analytics.duckdb"]
استخدام الملفات الشخصية مع:
harlequin --profile local-pg
| المحول | التثبيت الإضافي | مثال الاتصال |
|---|
| DuckDB | (مدمج) | harlequin data.duckdb |
| SQLite | sqlite | harlequin -a sqlite data.db |
| PostgreSQL | postgres | harlequin -a postgres -h host -U user -d db |
| MySQL | mysql | harlequin -a mysql -h host -u user db |
| S3 / GCS | s3 | Parquet/CSV على التخزين السحابي |
| ODBC | odbc | اتصالات ODBC عامة |
| Trino | trino | مجموعات Trino/Presto |
| BigQuery | bigquery | Google BigQuery |
| Cassandra | cassandra | Apache Cassandra |
| ClickHouse | clickhouse | قواعد بيانات ClickHouse |
| MotherDuck | (عبر DuckDB) | Cloud DuckDB |
# استكشاف بيانات سريع — فتح CSV كقاعدة بيانات
harlequin
# ثم في محرر الاستعلام: SELECT * FROM read_csv_auto('data.csv') LIMIT 100;
# استكشاف قاعدة بيانات SQLite (مثل قاعدة بيانات تطبيق محمول)
harlequin -a sqlite app.db
# الاتصال بـ Postgres المحلية للتطوير
harlequin -a postgres -h localhost -p 5432 -U dev -d myapp_dev
# تحليل ملفات Parquet بدون تحميلها في قاعدة بيانات
harlequin
# ثم: SELECT * FROM read_parquet('output/*.parquet');
# تثبيت django-harlequin
pip install django-harlequin
# تشغيل Harlequin متصلاً بقاعدة بيانات Django الخاصة بك
./manage.py harlequin
| المشكلة | الحل |
|---|
| المحول غير موجود | التثبيت مع الإضافات: uv tool install 'harlequin[postgres]' |
| رفض الاتصال | تحقق من المضيف والمنفذ وأن خادم قاعدة البيانات يعمل |
| مشاكل العرض | جرب طرفية مختلفة (Kitty، WezTerm، iTerm2 موصى بها) |
| بطء على الجداول الكبيرة | استخدام LIMIT في الاستعلامات؛ تجنب SELECT * على الجداول الضخمة |
| الإكمال التلقائي مفقود | تأكد من أنك متصل بقاعدة بيانات بها مخطط |
| الميزة | Harlequin | DBeaver | pgcli | usql |
|---|
| يعمل في الطرفية | نعم | لا (GUI) | نعم | نعم |
| قواعد بيانات متعددة | نعم | نعم | Postgres فقط | نعم |
| الإكمال التلقائي | نعم | نعم | نعم | لا |
| جدول نتائج مرئي | نعم | نعم | أساسي | أساسي |
| استعلامات الملفات (CSV, Parquet) | نعم (DuckDB) | محدود | لا | لا |
| ملفات تعريف التكوين | نعم | نعم | نعم | لا |