QuestDB è un database open-source ad alte prestazioni per le applicazioni che riguardano i sevizi finanziari,
IoT, machine learning, DevOps e osservabilità.
Include endpoint per il protocollo di collegamento PostgreSQL, l'importazione
indipendente dello schema ad alta velocità tramite InfluxDB Line Protocol,
e una REST API per query, importazioni bulk e export.
QuestDB implementa ANSI SQL con estensioni native per le funzionalità time-oriented.
Queste estensioni permettono facilmente di correlare dati da molteplici fonti
usando join relazionali e temporali.
QuestDB raggiunge delle alte performance grazie ai modelli di archiviazione orientati a colonne,
esecuzioni di vettori massivamente parallelizzati, istruzioni SIMD e altre tecniche
per ottenere bassa latenza.
Tutto il progetto è stato costruito da zero in Java e C++, senza avere dipendenze ed è
al 100% libero dalla garbage collection.
QuestDB è un [database open-source per serie temporali](https://questdb.io/glossary/time-series-database/) progettato l’ingestione di dati ad alto throughput e query SQL veloci, il tutto garantendo semplicità operazionale.
QuestDB supporta l’inserimento di data agnostici ed utilizza l’InlfuxDB line protocol, PostgreSQL wire protocol, ed API REST per l’importazione e l’esportazione in blocco dei dati.
QuestDB è ideale per dati relativi ai mercati finanziari, alle metriche delle applicazioni, ai dati dei sensori, analisi in tempo reale, dashboard, ed il monitoraggio delle infrastutture.
QuestDB implementa ANSI SQL con estensioni SQL native alle serie temporali. Queste estensioni SQL utilizzano join sia relezionali che basati sulle serie temportali e rendono semplice la correllazioni dei dati da multiple fonti. Grazie all’adozione di modello d’archiviazione dei dati orientato alle colonne, esecuzione vettoriale parallelizzata, istruzioni SIMD e tecniche a bassa latenza. L’intero codice è stato sviluppato partendo da zero in Java e C++, senza dipendenze e senza garbage collection.
<divalign="center">
<ahref="https://demo.questdb.io">
<imgalt="QuestDB Web Console che mostra più istruzioni SQL e visualizza le query come un grafico"src="https://raw.githubusercontent.com/questdb/questdb/master/.github/console.png"width="600"/>
<imgalt="QuestDB Console Web mostra istruzioni SQL e i risultati delle query"src="https://raw.githubusercontent.com/questdb/questdb/master/.github/console.png"width="600"/>
</a>
</div>
## Provare QuestDB
## Prova QuestDB
Forniamo una [demo live](https://demo.questdb.io/) con l'ultima versione di QuestDB ed alcuni set di dati come esempi:
- Viaggi: oltre 1,6 miliardi di righe di dati relativi agli ultimi 10 anni di viaggi in taxi a New York. - Operazioni finanziare: oltre 30 milioni di righe di dati in tempo reale relativi al mercato cripto.
- Posizionamento: dati relativi alla geolocalizzazione di 250.000 navi nel corso del tempo.
| `SELECT sum(double) FROM trips` | [0.15 secs](<https://demo.questdb.io/?query=SELECT%20sum(trip_distance)%20FROM%20trips;&executeQuery=true>) |
| `SELECT sum(double), avg(double) FROM trips` | [0.5 secs](<https://demo.questdb.io/?query=SELECT%20sum(fare_amount),%20avg(fare_amount)%20FROM%20trips;&executeQuery=true>) |
| `SELECT avg(double) FROM trips WHERE time in '2019'` | [0.02 secs](<https://demo.questdb.io/?query=SELECT%20avg(trip_distance)%20FROM%20trips%20WHERE%20pickup_datetime%20IN%20%272019%27;&executeQuery=true>) |
| `SELECT time, avg(double) FROM trips WHERE time in '2019-01-01' SAMPLE BY 1h` | [0.01 secs](<https://demo.questdb.io/?query=SELECT%20pickup_datetime,%20avg(trip_distance)%20FROM%20trips%20WHERE%20pickup_datetime%20IN%20%272019-01-01%27%20SAMPLE%20BY%201h;&executeQuery=true>) |
| `SELECT * FROM trades LATEST ON timestamp PARTITION BY symbol` | [0.00025 secs](https://demo.questdb.io/?query=SELECT%20*%20FROM%20trades%20LATEST%20ON%20timestamp%20PARTITION%20BY%20symbol;&executeQuery=true) |
Noi forniamo una [live demo](https://demo.questdb.io/) con all'interno l'ultima
versione QuestDB ed un dataset di esempio:
La nostra demo è in esecuzione su un'istanza `c5.metal` e sta utilizzando 24 core su 96.
- 10 anni di viaggi di taxi a NYC taxi con 1.6 miliardi di righe
- dati di live trading da un exchange di cryptovalute
- la geolocalizzazione di 250k navi nel tempo
## Per iniziare
## Installare QuestDB
### Installa QuestDB
Per eseguire QuestDB si può utilizzare Docker:
Per eseguire QuestDB rapidamente, è possibile utilizzare [Docker](https://www.docker.com/):
```bash
docker run -p 9000:9000 -p 9009:9009 -p 8812:8812 questdb/questdb
...
...
@@ -63,94 +66,86 @@ Gli utenti macOS possono usare Homebrew:
brew install questdb
brew services start questdb
questdb start // Per avviare questdb
questdb stop // Per terminare questdb
questdb start // To start questdb
questdb stop // To stop questdb
```
La [pagina di download di QuestDB](https://questdb.io/get-questdb/) fornisce il download diretto dei file binari
e contiene i dettagli per altre installazioni e metodi di sviluppo.
La nostra [pagina di download](https://questdb.io/get-questdb/) fornisce la possibilità di scaricare immediatamente i file binari e fornisce dettagli su ulteriori metodi di installazione e distribuzione.
### Connettersi a QuestDB
### Connettiti a QuestDB
Puoi interagire con QuestDB usando le seguenti interfacce:
Puoi interagire con QuestDB utilizzando le seguenti interfacce:
-[Web Console](https://questdb.io/docs/develop/web-console/) sulla porta
`9000`
-[REST API](https://questdb.io/docs/reference/api/rest/) sulla porta `9000`
-[PostgreSQL](https://questdb.io/docs/reference/api/postgres/) wire protocol sulla
porta `8812`
-[InfluxDB](https://questdb.io/docs/reference/api/ilp/overview/) line protocol per
l'ingestione ad alto rendimento sulla porta `9009`
- La[Console Web](https://questdb.io/docs/develop/web-console/) che fornisce un editor SQL interattivo sulla porta `9000`
- Il [protocollo di linea InfluxDB](https://questdb.io/docs/reference/api/influxdb/) per l'ingestione ad alto throughput sulla porta `9009`
- L’[API REST](https://questdb.io/docs/reference/api/rest/) sulla porta `9000`
- Il [protocollo di rete PostgreSQL](https://questdb.io/docs/reference/api/postgres/) sulla porta `8812`
## Come è QuestDB in confronto agli altri TSDBs open source
### Inserisci i tuoi dati
Di seguito riportiamo i client ufficiali di QuestDB per alcuni dei linguaggi di programmazione più popolari:
Ecco le high-cardinality
[Time Series Benchmark Suite](https://questdb.io/blog/2021/06/16/high-cardinality-time-series-data-performance/)
risultati ottenuti usando `cpu-only` con 6 workers su un AMD Ryzen 3970X:
Se desideri eseguire tutto quello di cui hai bisogno, dall'ingestione in streaming dei dati alla loro visualizzazione con Grafana, dai un'occhiata al nostro [repository di avvio rapido.](https://github.com/questdb/questdb-quickstart).
## QuestDB a confronto con altri database open-source per serie temporali
[Questo articolo](https://questdb.io/blog/2021/07/05/comparing-questdb-timescaledb-influxdb/) mette a confronto QuestDB con altri database di serie temporali open source in termini di funzionalità, maturità e prestazioni.
Ecco i risultati dell'High-Cardinality Time Series Benchmark Suite che utilizza il caso d'uso "solo CPU" con 6-16 lavoratori su 32 CPU e 64 GB di RAM::
<imgalt="Grafico che compara la massima portata di QuestDB, ClickHouse, TimescaleDB and InfluxDB."width="600"alt="tsbs-results"src="https://user-images.githubusercontent.com/91843271/197382161-e5f3f5b0-18bf-439a-94e4-83ab4bf91d7c.png">
<imgalt="Grafico che compara la produttività di QuestDB, ClickHouse, TimescaleDB, ed InfluxDB."width="600"alt="tsbs-results"src="https://user-images.githubusercontent.com/91843271/197382161-e5f3f5b0-18bf-439a-94e4-83ab4bf91d7c.png">
</a>
</div>
La seguente tabella mostra l'esecuzione di query con un milione di righe su
un'istanza `c5.metal` che utilizza 16 dei 96 thread disponibili
Siamo sempre felici di ricevere contribuzioni al nostro progetto, che si tratti di codice, documentazione, segnalazioni di bug, richieste di nuove funzionalità o feedback.
Siamo sempre felici di vedere nuovi contributi al progetto che sia nel codice,
nella documentazione, nella segnalazione di bug, richieste di funzionalità o feedback.
Per iniziare a contribuire:
### Vuoi contribuire?
- Dai un'occhiata alle issue di GitHub
"[Good first issue](https://github.com/questdb/questdb/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%22)".
-[Create a fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo)
di QuestDB e fai una pull request con le tue proposte di cambio.
- su GitHub contrassegnate come[Good first issue.](https://github.com/questdb/questdb/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+first+issue%22)".
- Leggi la nostra[nostra guida](https://github.com/questdb/questdb/blob/master/CONTRIBUTING.md).
- Per dettagli sulla compilazione di QuestDB, consulta [le istruzioni.](https://github.com/questdb/questdb/blob/master/core/README.md).
-[Crea un fork](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) di QuestDB e invia una pull request con le tue modifiche.
✨ Come segno di gratitudine inviamo **QuestDB swag** ai nostri collaboratori.
[Richiedi il tuo swag qua.](https://questdb.io/community)
✨ Come segno della nostra gratitudine, inviamo dei gadget QuestDB ai nostri contributori. Una volta contribuito, puoi richiedre il tuo gadget [qui.](https://questdb.io/community)
Un grande grazie va a queste magnifiche persone che hanno contribuito a QuestDB