Développement de la section Utilisation
This commit is contained in:
parent
b90350247e
commit
60c220c14b
|
@ -79,10 +79,140 @@ La documentation sur la [configuration](https://clickhouse.com/docs/en/operation
|
|||
|
||||
# Utilisation
|
||||
|
||||
ClickHouse parle le language SQL. Un [tutoriel](https://clickhouse.com/docs/en/tutorial) permet d'apprendre les bases (créer un nouveau tableau, y insérer un grand ensemble de données et tester quelques requêtes).
|
||||
ClickHouse parle le language SQL. Un [tutoriel](https://clickhouse.com/docs/en/tutorial) permet d'apprendre les bases (créer une nouvelle table, y insérer un grand ensemble de données et tester quelques requêtes).
|
||||
|
||||
Plusieurs [interfaces](https://clickhouse.com/docs/en/interfaces) sont disponibles, notamment en ligne de commande (`clickhouse-client`) et via HTTP (`http://localhost:8123/play`)
|
||||
|
||||
Pour se connecter en ligne de commande directement sur le serveur (localhost, port 9000) avec l'utilisateur par défaut :
|
||||
|
||||
~~~
|
||||
$ clickhouse-client --password
|
||||
~~~
|
||||
|
||||
Après avoir saisi le mot de passe on atterrit dans l'invite de ClickHouse où on peut obtenir une liste des commandes disponibles en tappant :
|
||||
|
||||
~~~
|
||||
:) help
|
||||
~~~
|
||||
|
||||
Pour voir quelles bases de données sont présentes sur le serveur :
|
||||
|
||||
~~~
|
||||
:) SHOW DATABASES
|
||||
~~~
|
||||
|
||||
Créer une base de données `helloworld` :
|
||||
|
||||
~~~
|
||||
:) CREATE DATABASE IF NOT EXISTS helloworld
|
||||
~~~
|
||||
|
||||
Créer une table dans la base de données `helloworld` :
|
||||
|
||||
~~~
|
||||
:) CREATE TABLE helloworld.ma_table
|
||||
(
|
||||
user_id UInt32,
|
||||
message String,
|
||||
timestamp DateTime,
|
||||
metric Float32
|
||||
)
|
||||
ENGINE = MergeTree()
|
||||
PRIMARY KEY (user_id, timestamp)
|
||||
~~~
|
||||
|
||||
Insérer des données dans la table `helloworld.ma_table` de manière interactive :
|
||||
|
||||
~~~
|
||||
:) INSERT INTO helloworld.ma_table (user_id, message, timestamp, metric) VALUES
|
||||
(101, 'Coucou, ClickHouse!', now(), -1.0 ),
|
||||
(102, 'Insérez beaucoup d\'entrées en lot', yesterday(), 1.41421 ),
|
||||
(102, 'Triez vos données grâce à vos requêtes favorites', today(), 2.718 ),
|
||||
(101, 'Les granules sont les plus petits segments de données lues', now() + 5, 3.14159 )
|
||||
~~~
|
||||
|
||||
Sélectionner toutes les entrées insérées dans la table :
|
||||
|
||||
~~~
|
||||
:) SELECT * FROM helloworld.ma_table
|
||||
~~~
|
||||
|
||||
Sélectionner toutes les entrées de la table, cette fois en triant par date et en formattant la sortie différemment :
|
||||
|
||||
~~~
|
||||
:) SELECT * FROM helloworld.ma_table ORDER BY timestamp FORMAT JSON
|
||||
~~~
|
||||
|
||||
La documentation officielle contient [une page présentant les différents formats disponibles](https://clickhouse.com/docs/en/interfaces/formats/).
|
||||
|
||||
Créer la table `trips` dans la base de données `helloworld` pour mieux illustrer la force de ClickHouse :
|
||||
|
||||
~~~
|
||||
:) CREATE TABLE helloworld.trips (
|
||||
trip_id UInt32,
|
||||
pickup_datetime DateTime,
|
||||
dropoff_datetime DateTime,
|
||||
pickup_longitude Nullable(Float64),
|
||||
pickup_latitude Nullable(Float64),
|
||||
dropoff_longitude Nullable(Float64),
|
||||
dropoff_latitude Nullable(Float64),
|
||||
passenger_count UInt8,
|
||||
trip_distance Float32,
|
||||
fare_amount Float32,
|
||||
extra Float32,
|
||||
tip_amount Float32,
|
||||
tolls_amount Float32,
|
||||
total_amount Float32,
|
||||
payment_type Enum('CSH' = 1, 'CRE' = 2, 'NOC' = 3, 'DIS' = 4),
|
||||
pickup_ntaname LowCardinality(String),
|
||||
dropoff_ntaname LowCardinality(String)
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
PRIMARY KEY (pickup_datetime, dropoff_datetime)
|
||||
~~~
|
||||
|
||||
Insérer des données dans la table à partir de trois gros fichiers CVS distants proposés en exemple par ClickHouse. Ils contiennent des trajets de taxi de la Ville de New York de 2009 à nos jours :
|
||||
|
||||
~~~
|
||||
:) INSERT INTO helloworld.trips
|
||||
SELECT
|
||||
trip_id,
|
||||
pickup_datetime,
|
||||
dropoff_datetime,
|
||||
pickup_longitude,
|
||||
pickup_latitude,
|
||||
dropoff_longitude,
|
||||
dropoff_latitude,
|
||||
passenger_count,
|
||||
trip_distance,
|
||||
fare_amount,
|
||||
extra,
|
||||
tip_amount,
|
||||
tolls_amount,
|
||||
total_amount,
|
||||
payment_type,
|
||||
pickup_ntaname,
|
||||
dropoff_ntaname
|
||||
FROM url(
|
||||
'https://datasets-documentation.s3.eu-west-3.amazonaws.com/nyc-taxi/trips_{0..2}.gz',
|
||||
'TabSeparatedWithNames'
|
||||
)
|
||||
~~~
|
||||
|
||||
Confirmer l'insertion de plus de 3 millions d'entrées :
|
||||
|
||||
~~~
|
||||
SELECT count()
|
||||
FROM helloworld.trips
|
||||
~~~
|
||||
|
||||
Laisser tomber la base de données `helloworld` avant de sortir de ClickHouse :
|
||||
|
||||
~~~
|
||||
:) DROP DATABASE helloworld
|
||||
:) exit
|
||||
~~~
|
||||
|
||||
# Sauvegarde et restauration
|
||||
|
||||
Des exemples de [sauvegarde et de restoraution](https://clickhouse.com/docs/en/operations/backup) sont proposés dans la documentation officielle.
|
||||
|
|
Loading…
Reference in a new issue