Introducción a la instalación de ClickHouse y primeros pasos

Prefacio:

He oído hablar del nombre de ClickHouse durante mucho tiempo, pero no he aprendido más sobre él. Recientemente leí documentos relacionados con ClickHouse y decidí instalarlo y experimentarlo. Los amigos que quieran conocer ClickHouse pueden aprender juntos. Este artículo presenta principalmente el método de instalación de ClickHouse y los conocimientos básicos.

1. Introducción a ClickHouse

ClickHouse es un sistema de gestión de bases de datos en columnas (DBMS) para análisis en línea (OLAP). Es de código abierto del gigante ruso de motores de búsqueda Yandex. Se utiliza principalmente en el campo del análisis de datos. En la actualidad, la comunidad nacional está de moda, y varias empresas importantes han realizado un seguimiento para su uso a gran escala Campo OLAP.

Echemos un vistazo a cómo el sitio web oficial de ClickHouse presenta algunas de sus características:

  • Rápido : ClickHouse hará un uso completo de todo el hardware disponible para procesar cada consulta lo más rápido posible. El rendimiento máximo de procesamiento de una sola consulta supera los 2 TB por segundo (después de la descompresión, solo se utilizan columnas). En un entorno distribuido, las lecturas se equilibran automáticamente entre copias en buen estado para evitar una mayor latencia.
  • Tolerancia a fallas : ClickHouse admite la replicación asincrónica de múltiples hosts y se puede implementar en múltiples centros de datos. Todos los nodos son iguales, lo que puede evitar un solo punto de falla. El tiempo de inactividad de un solo nodo o de todo el centro de datos no afectará la disponibilidad de lectura y escritura del sistema.
  • Escalable : ClickHouse puede escalar bien en direcciones verticales y horizontales. ClickHouse es fácil de ajustar para ejecutarse en clústeres con cientos o miles de nodos o en un solo servidor, o incluso en pequeñas máquinas virtuales. Actualmente, la cantidad de datos instalados por un solo nodo supera los billones de filas o cientos de terabytes.
  • Fácil de usar : ClickHouse es fácil de usar, listo para usar. Simplifica todo el procesamiento de datos: todos los datos estructurados se absorben en el sistema y están disponibles inmediatamente para generar informes. SQL permite expresar los resultados deseados sin involucrar ninguna API no estándar personalizada que se pueda encontrar en algunos DBMS.

2. Tutorial de instalación de ClickHouse

ClickHouse puede ejecutarse en cualquier Linux, FreeBSD o Mac OS X con arquitectura de CPU x86_64, AArch64 o PowerPC64LE. Parece que no se puede instalar en el sistema Windows, pero ClickHouse también admite la implementación de Docker. El sistema Windows puede instalar ClickHouse en Docker.

De acuerdo con la recomendación del documento oficial: los sistemas Debian o Ubuntu se pueden instalar usando el paquete deb precompilado oficial, y las distribuciones de Linux como CentOS y RedHat se pueden instalar usando el paquete rpm precompilado oficial. Si su sistema operativo no admite la instalación de deb o rpm Package, también puede utilizar el paquete tgz o compilar e instalar directamente el código fuente. A continuación tomamos el sistema CentOS como ejemplo para instalar ClickHouse en modo rpm.

# 查看系统版本
[root@localhost ~]# more /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

# 检测当前CPU是否支持SSE 4.2
[root@localhost ~]# grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
SSE 4.2 supported

# 添加官方存储库
sudo yum install yum-utils
sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64

# 安装clickhouse
sudo yum install clickhouse-server clickhouse-client

# 启动clickhouse
sudo /etc/init.d/clickhouse-server start

# 进入clickhouse客户端
root@localhost ~]# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.

localhost :) select 1;

SELECT 1

Query id: 42f5e589-2f81-44e2-9fb8-de45e682acfc

┌─1─┐
│ 1 │
└───┘

1 rows in set. Elapsed: 0.002 sec. 

localhost :) select now();

SELECT now()

Query id: c4c867a9-ae0e-4d6c-bb19-057e96cf6624

┌───────────────now()─┐
│ 2021-01-13 10:19:14 │
└─────────────────────┘

1 rows in set. Elapsed: 0.004 sec. 

3. Operación simple de ClickHouse

ClickHouse admite operaciones SQL limitadas y la sintaxis SQL es similar a la de las bases de datos relacionales tradicionales. A continuación se presenta brevemente la sintaxis básica de ClickHouse:

# 1.创建数据库
# 语法:
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] [ENGINE = engine(...)]
# 示例:
[root@localhost ~]# clickhouse-client     
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.

localhost :) create database test;

CREATE DATABASE test

Query id: c17cbf32-ab8c-45a0-8ebb-a7b0bdb88efe

Ok.

0 rows in set. Elapsed: 0.015 sec. 

localhost :) use test;

USE test

Query id: 4eeadf20-e8bc-4b84-a953-71cf16e133b6

Ok.

0 rows in set. Elapsed: 0.001 sec.

# 2.创建表
# 语法:
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [compression_codec] [TTL expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [compression_codec] [TTL expr2],
    ...
) ENGINE = engine
# 示例:
root@localhost ~]# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.

localhost :) use test;

USE test

Query id: 37248a4f-36ec-4ed3-a08a-c345db228c98

Ok.

0 rows in set. Elapsed: 0.001 sec. 

localhost :) create table t1 (id Int32,name String) engine=TinyLog;

CREATE TABLE t1
(
    `id` Int32,
    `name` String
)
ENGINE = TinyLog

Query id: 8296c170-72fa-4852-8447-ab548fa3b7b8

Ok.

0 rows in set. Elapsed: 0.230 sec. 

localhost :) show tables;

SHOW TABLES

Query id: 7da8d2d5-e4ed-45f1-b96c-4d23924512ba

┌─name─┐
│ t1   │
└──────┘

1 rows in set. Elapsed: 0.007 sec. 

# TinyLog是最简单的表的引擎,用于将数据存储在磁盘上。常用于小表。

# 3.插入数据
# 示例:
[root@localhost ~]# clickhouse-client
ClickHouse client version 20.12.5.14 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 20.12.5 revision 54442.

localhost :) use test;

USE test

Query id: 71a1de2a-17fe-4a0b-b9b6-7e934016892e

Ok.

0 rows in set. Elapsed: 0.001 sec. 

localhost :) insert into t1 (id, name) values (1, 'abc'), (2, 'bbbb'),(3,'sdfg');

INSERT INTO t1 (id, name) VALUES

Query id: d4982851-8b52-4158-949f-fa94cd7d8ff3

Ok.

3 rows in set. Elapsed: 0.002 sec. 

localhost :) select * from t1;

SELECT *
FROM t1

Query id: b73f366c-702e-4bda-b519-cb087754bbad

┌─id─┬─name─┐
│  1 │ abc  │
│  2 │ bbbb │
│  3 │ sdfg │
└────┴──────┘

3 rows in set. Elapsed: 0.002 sec. 

Aunque existen similitudes entre la sintaxis SQL y las bases de datos relacionales, todavía tenemos que abandonar el pensamiento existente para aprender ClickHouse. Especialmente los tipos de datos, los motores de tablas y otras características no son familiares y aún es difícil de aprender.

referencia:

Supongo que te gusta

Origin blog.51cto.com/10814168/2591994
Recomendado
Clasificación