Introducción
ClickHouse es un sistema de gestión de base de datos orientado a columnas de código abierto. Es un software rápido, escalable y eficiente para usar en el análisis de datos actualizados en tiempo real.
Utiliza menos memoria y CPU que las bases de datos orientadas a filas, ya que no tiene que procesar datos innecesarios. Por lo tanto, tiene un tiempo de respuesta de consulta rápido y, en última instancia, proporciona un rendimiento óptimo. Además, comprende SQL, lo que lo hace más fácil de usar.
ClickHouse es muy flexible. Puede ejecutar este sistema de gestión en cualquier servidor, desde servidores bare metal hasta servidores en la nube, así como en cualquier sistema operativo Linux, MacOS o FreeBSD.
Esta guía le mostrará cómo instalar y comenzar con ClickHouse en su servidor CentOS 7.
Requisitos previos
- Acceso a una ventana de terminal/línea de comando
- Un servidor que ejecuta CentOS 7 con privilegios sudo
- Un editor de texto (como Nano)
- Servicio SSH para conectarse a su servidor remoto
Conéctese a través de SSH y actualice
1. Antes de poder instalar ClickHouse, debe acceder a su servidor CentOS remoto.
Ejecute el siguiente comando y reemplace your_username
y host_ip_address
con sus respectivas especificaciones:
ssh [email protected]_ip_address
2. Una vez que se conecte al servidor, asegúrese de actualizar el sistema ejecutando el comando:
sudo yum update
Instalar ClickHouse en CentOS
1. Primero, instale las dependencias del software, que incluyen el pygpgme package
(para agregar y verificar firmas GPG) y yum-utils
(para la gestión de RPM de origen):
sudo yum install -y pygpgme yum-utilshere
2. Para instalar la última versión de ClickHouse, debe acceder a un repositorio YUM mantenido por la consultora de ClickHouse, Altinity . Sin embargo, también desea asegurarse de que el paquete de instalación no dañe su servidor.
Comience por crear el archivo del repositorio con un editor de texto de su elección (en este ejemplo, usamos Nano):
sudo nano /etc/yum.repos.d/altinity_clickhouse.repo
3. Luego, agregue el siguiente contenido al archivo recién creado:
[altinity_clickhouse]
name=altinity_clickhouse
baseurl=https://packagecloud.io/altinity/clickhouse/el/7/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/altinity/clickhouse/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[altinity_clickhouse-source]
name=altinity_clickhouse-source
baseurl=https://packagecloud.io/altinity/clickhouse/el/7/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/altinity/clickhouse/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
4. Guarde y cierre el archivo del repositorio.
5. A continuación, habilite los repositorios con el comando:
sudo yum -q makecache -y --disablerepo'*' --enablerepo='altinity_clickhouse'
6. Una vez que la salida confirme que agregó la clave GPG, puede continuar con la instalación de ClickHouse. Descargue los paquetes clickhouse-server y clickhouse-client con el siguiente comando:
sudo yum install -y clickhouse-server clickhouse-client
7. Con esto ya tienes instalado ClickHouse en tu servidor CentOS 7.
Cómo iniciar el servicio ClickHouse
El systemd service
creado por clickhouse-server
El paquete es responsable de iniciar, reiniciar y detener la base de datos.
Para empezar el servidor de ClickHouse usa el comando:
sudo service clickhouse-server start here
El terminal debería mostrar el siguiente resultado:
También puede verificar si el servicio se está ejecutando correctamente con:
sudo service clickhouse-server status
El mensaje que reciba debe ser como en la imagen a continuación:
Cómo crear bases de datos y tablas
Para crear bases de datos y tablas, primero debe iniciar una sesión de cliente. Una vez que se abre el indicador, puede usarlo para ejecutar sentencias SQL.
clickhouse-client --multiline
Mientras que clickhouse-client
El comando abre una nueva sesión, el --multiline
flag le permite ejecutar consultas que ocupan varias líneas.
Crear una base de datos
Una base de datos es esencialmente un directorio para tablas. La sintaxis para crear una base de datos es:
CREATE DATABASE db_name
El resultado confirmará que la base de datos se ha creado mostrando el mensaje "Ok. ”, junto con el número de filas en el conjunto y el tiempo tomó para crear.
Para crear una base de datos en todos los servidores de un clúster , agregue la cláusula [ON CLUSTER cluster_id] a la sintaxis básica:
CREATE DATABASE db_name [ON CLUSTER cluster_id]
Para recuperar datos de un MySQL remoto servidor a la base de datos recién creada agregue el [ENGINE = engine(…)]
cláusula, como en el siguiente comando:
CREATE DATABASE db_name [ENGINE = engine(…)]
Crear una tabla
La sintaxis para crear una tabla es:
CREATE TABLE table_name
(
column_name1 column_type [options],
column_name2 column_type [options],
) ENGINE = engine
El tipo de MOTOR usted elige depende de la aplicación. ClickHouse tiene su motor de base de datos nativo que admite motores de tablas configurables y el dialecto SQL.
Generalmente, los motores de la familia MergeTree son los más utilizados. Sin embargo, ClickHouse también es compatible con MySQL.
Al crear una tabla, primero debe abrir la base de datos que desea modificar. Utilice el siguiente comando:
ch:) USE db_name
El resultado confirmará que se encuentra en la base de datos especificada.
A continuación, puede crear una tabla con todas las columnas deseadas (y tipos de columnas). En este ejemplo, crearemos un Cliente mesa que consta de seis (6) columnas usando el comando:
ch:) CREATE TABLE Client (
ch:) ClientID UInt64,
ch:) FirstName String,
ch:) LastName String,
ch:) Address String,
ch:) City String,
ch:) BirthDate DateTime
ch:) ) ENGINE = MergeTree()
ch:) PRIMARY KEY ClientID
ch:) ORDER BY ClientID;
Un nombre y una columna tipo definir cada columna. Los tipos de columna en el ejemplo incluyen:
- UInt64:para almacenar números enteros del 0 al 18446744073709551615
- Cadena:para almacenar texto que puede contener caracteres, números y espacios
- DateTime:para almacenar fechas y horas en el formato AAAA-MM-DD HH:MM:SS
En este caso, el MOTOR de almacenamiento es el motor de tablas de ClickHouse más sólido:MergeTree .
A continuación, la CLAVE PRINCIPAL define qué columna usar para identificar todos los registros de la tabla.
Finalmente, el ORDENAR POR La cláusula le permite ordenar los resultados en función de la columna definida.
Tras la creación, la salida debería aparecer de la siguiente manera:
CREATE TABLE Client
(
ClientID UInt64,
FirstName String,
LastName String,
Address String,
City String,
BirthDate DateTime
)
ENGINE = MergeTree()
PRIMARY KEY ClientID
ORDER BY ClientID
Ok.
0 rows in set. Elapsed: 0.010 sec.
Insertar, actualizar y eliminar datos y columnas
Para insertar filas en una tabla, use la siguiente sintaxis de consulta:
INSERT INTO table_name VALUES (column_1_value, column_2_value, ....);
Por ejemplo, si quisiéramos insertar filas en la tabla Cliente creada anteriormente, ejecutaríamos el siguiente comando:
TO BE ADDED
Al agregar nuevas columnas a una tabla, use la sintaxis:
ALTER TABLE table_name ADD COLUMN column_name column_type;
Por ejemplo, si desea agregar una columna Profesión a la tabla Cliente, el comando sería:
ALTER TABLE Client ADD COLUMN Profession String;
Para agregar varias columnas usando la sintaxis:
ALTER TABLE table_name ADD COLUMN column_1 column_type, column_2 column_type, column_3 column_type;
Las bases de datos de ClickHouse utilizan consultas SQL no estándar para actualizar y eliminar, que incluyen operaciones por lotes asincrónicas. Los siguientes comandos están disponibles para las versiones 18.12.14 o posteriores.
La sintaxis para actualizar es:
ALTER TABLE table_name UPDATE column_1 = value_1, column_2 = value_2 ... WHERE filter_conditions;
La sintaxis para eliminar filas es:
ALTER TABLE table_name DELETE WHERE filter_conditions;
La sintaxis para eliminar columnas es:
ALTER TABLE table_name DROP COLUMN column_name;
Eliminación de tablas y bases de datos
Para eliminar o descartar una tabla, use la siguiente sintaxis:
DROP TABLE table_name
Si quisiéramos borrar la tabla de Clint, usamos el comando:
DROP TABLE Client
La sintaxis para eliminar completamente una base de datos es:
DROP database db_name
Consultar o recuperar datos
Utilice la cláusula SELECT para recuperar datos de filas y columnas. La sintaxis básica es:
SELECT func_1(column_1), func_2(column_2) FROM table_name WHERE filter_conditions row_options;
Si desea recuperar valores de salida únicos que resuman los valores de varias filas y columnas, puede usar funciones agregadas.
Algunos ejemplos de funciones agregadas comunes admitidas por ClickHouse son:
• promedio (promedio):calcula el volumen promedio de la columna seleccionada; solo se usa para numeros
• contar :calcula el número de filas que coinciden con los criterios especificados
• suma (suma):calcula la suma de una columna numérica; solo se usa para numeros
• uniq :calcula el número aproximado de filas que coinciden con los criterios; usado para números, cadenas y fechas