Eine vollwertige SQL-IDE, die vollständig in Ihrem Terminal läuft. Bietet Syntaxhervorhebung, Autovervollständigung, eine Datenkatalog-Seitenleiste, mehrere Datenbank-Adapter und Ergebnisexport — keine GUI erforderlich.
| Methode | Befehl |
|---|
| uv (Empfohlen) | uv tool install harlequin |
| pip | pip install harlequin |
| pipx | pipx install harlequin |
| Homebrew | brew install harlequin |
| Poetry | poetry add harlequin |
# DuckDB (eingebaut, keine zusätzliche Installation erforderlich)
uv tool install harlequin
# SQLite-Adapter
uv tool install 'harlequin[sqlite]'
# PostgreSQL-Adapter
uv tool install 'harlequin[postgres]'
# MySQL-Adapter
uv tool install 'harlequin[mysql]'
# Mehrere Adapter gleichzeitig
uv tool install 'harlequin[postgres,mysql,sqlite,s3]'
Voraussetzungen: Python 3.9+
| Befehl | Beschreibung |
|---|
harlequin | Mit In-Memory-DuckDB-Datenbank öffnen |
harlequin mydb.duckdb | DuckDB-Datenbankdatei öffnen |
harlequin -a sqlite mydb.db | SQLite-Datenbank öffnen |
harlequin -a sqlite | In-Memory-SQLite-Datenbank öffnen |
harlequin -a postgres -h localhost -p 5432 -U user -d mydb | Zu PostgreSQL verbinden |
harlequin -a mysql -h localhost -u root mydb | Zu MySQL verbinden |
harlequin --theme monokai | Bestimmtes Farbthema verwenden |
harlequin --locale en_US | Zahlenformatierungs-Locale setzen |
harlequin --help | Alle CLI-Optionen anzeigen |
| Taste | Beschreibung |
|---|
Ctrl+Enter | Aktuelle Abfrage ausführen |
Ctrl+j | Aktuelle Abfrage ausführen (Alternative) |
Ctrl+o | SQL-Datei öffnen |
Ctrl+s | Aktuelle Abfrage in Datei speichern |
Ctrl+n | Neuen Abfrage-Tab |
Ctrl+w | Aktuellen Abfrage-Tab schließen |
Ctrl+k | Zum nächsten Abfrage-Tab wechseln |
Tab | Autovervollständigungsvorschlag akzeptieren |
Escape | Autovervollständigungsmenü schließen |
F1 | Hilfe / kontextuelle Dokumentation anzeigen |
| Taste | Beschreibung |
|---|
Ctrl+r | Fokus zu Ergebnisbereich wechseln |
Ctrl+e | Fokus zu Abfrage-Editor wechseln |
| Pfeiltasten | In Ergebnistabelle navigieren |
Ctrl+c | Ausgewählte Zelle(n) kopieren |
| Taste | Beschreibung |
|---|
Ctrl+q | Harlequin beenden |
Ctrl+b | Datenkatalog-Seitenleiste umschalten |
F1 | Hilfe |
DuckDB ist der Standard-Adapter und unterstützt leistungsstarke Funktionen:
-- CSV-Dateien direkt lesen
SELECT * FROM read_csv_auto('data.csv');
-- Parquet-Dateien lesen
SELECT * FROM read_parquet('data.parquet');
-- JSON-Dateien lesen
SELECT * FROM read_json_auto('data.json');
-- Remote-Dateien abfragen
SELECT * FROM read_csv_auto('https://example.com/data.csv');
-- S3-Dateien abfragen (mit s3-Adapter)
SELECT * FROM read_parquet('s3://bucket/data.parquet');
-- Daten aus mehreren Dateien aggregieren
SELECT * FROM read_csv_auto('logs/*.csv');
Erstellen Sie eine Konfigurationsdatei, um häufig verwendete Verbindungsprofile zu speichern:
# ~/.config/harlequin/config.toml
# (oder verwenden Sie --config-Flag, um Pfad anzugeben)
[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"]
Profile verwenden mit:
harlequin --profile local-pg
| Adapter | Install Extra | Verbindungsbeispiel |
|---|
| DuckDB | (eingebaut) | 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 auf Cloud-Speicher |
| ODBC | odbc | Generische ODBC-Verbindungen |
| Trino | trino | Trino/Presto-Cluster |
| BigQuery | bigquery | Google BigQuery |
| Cassandra | cassandra | Apache Cassandra |
| ClickHouse | clickhouse | ClickHouse-Datenbanken |
| MotherDuck | (via DuckDB) | Cloud DuckDB |
# Schnelle Datenexploration — CSV als Datenbank öffnen
harlequin
# Dann im Abfrage-Editor: SELECT * FROM read_csv_auto('data.csv') LIMIT 100;
# SQLite-Datenbank erkunden (z.B. eine Mobile-App-DB)
harlequin -a sqlite app.db
# Zu lokalem Postgres für Entwicklung verbinden
harlequin -a postgres -h localhost -p 5432 -U dev -d myapp_dev
# Parquet-Dateien analysieren ohne in Datenbank zu laden
harlequin
# Dann: SELECT * FROM read_parquet('output/*.parquet');
# django-harlequin installieren
pip install django-harlequin
# Harlequin verbunden mit Ihrer Django-DB starten
./manage.py harlequin
| Problem | Lösung |
|---|
| Adapter nicht gefunden | Mit Extras installieren: uv tool install 'harlequin[postgres]' |
| Verbindung verweigert | Host, Port prüfen und dass Datenbankserver läuft |
| Anzeigeprobleme | Anderes Terminal versuchen (Kitty, WezTerm, iTerm2 empfohlen) |
| Langsam bei großen Tabellen | LIMIT in Abfragen verwenden; SELECT * bei riesigen Tabellen vermeiden |
| Fehlende Autovervollständigung | Sicherstellen, dass Sie mit einer Datenbank mit Schema verbunden sind |
| Funktion | Harlequin | DBeaver | pgcli | usql |
|---|
| Läuft im Terminal | Ja | Nein (GUI) | Ja | Ja |
| Multi-Datenbank | Ja | Ja | Nur Postgres | Ja |
| Autovervollständigung | Ja | Ja | Ja | Nein |
| Visuelle Ergebnistabelle | Ja | Ja | Einfach | Einfach |
| Dateiabfragen (CSV, Parquet) | Ja (DuckDB) | Begrenzt | Nein | Nein |
| Konfigurationsprofile | Ja | Ja | Ja | Nein |