Méthode de migration d'une grande quantité de données dans ClickHouse

En ce qui concerne les méthodes de sauvegarde de Clickhouse, son site Web officiel fournit une variété de méthodes de sauvegarde à titre de référence. Différents besoins commerciaux ont différents scénarios d'utilisation et différentes méthodes de sauvegarde doivent être utilisées. Il n'y a pas de solution générale qui puisse faire face à diverses situations. Sauvegarde et restauration de ClickHouse . Dans l'article d'aujourd'hui, nous présentons diverses méthodes de migration Clickhouse, et des scénarios d'utilisation spécifiques doivent être sélectionnés en fonction des besoins.

1. Importation et exportation de fichiers texte

Exporter les données de la base de données dans un format spécifique, puis les importer est très simple, simple et facile à comprendre, mais il ne peut être utilisé que lorsque la quantité de données est faible. Si la quantité de données est importante, cette méthode sera une catastrophe.

Exporter:

clickhouse-client --password 12345678 --query="select * from inuser.t_record FORMAT CSV" > record.csv

Import : Attention à la casse après FORMAT

cat inuser.record.csv | clickhouse-client --port 9008 --password 12345678 --query="INSERT INTO inuser.record FORMAT CSV"

2. Copiez le répertoire de données

Récupération de données à froid, copiez directement les données clickhouse sur une autre machine, modifiez la configuration pertinente pour démarrer directement, observez attentivement la structure du répertoire de ClickHouse sur le système de fichiers (fichier de configuration /ect/clickhouse-server/ config <path> configuré en
.xml ), pour faciliter la visualisation, seuls les répertoires de données et de métadonnées sont réservés.

Sur la base de ces informations, copiez directement les répertoires de données et de métadonnées (pour exclure la bibliothèque système) vers le nouveau cluster pour réaliser la migration des données

marcher:

1、停止原先的clickhouse数据库,并打包好 对应数据库或表的 data 和 metadata 数据
2、拷贝到目标clickhouse数据库对应的目录,比如/var/lib/clickhouse 目录下
3、给clickhouse 赋予权限, chown -Rf clickhouse:clickhouse /var/lib/clickhouse/*
						                              chown -Rf clickhouse:clickhouse /var/lib/clickhouse
4、重启目标clickhouse数据库
5、验证数据
        select count(1) form inuser.t_record;

3. Utilisez des outils tiers, clickhouse-backup

clickhouse-backup est un outil de sauvegarde ClickHouse open source de la communauté, qui peut être utilisé pour mettre en œuvre la migration des données. Le principe est de créer d'abord une sauvegarde, puis d'importer les données de la sauvegarde, similaire à mysqldump + SOURCE de MySQL. Cet outil peut être utilisé comme une solution conventionnelle de sauvegarde à froid hors site

# Restrictions d'utilisation :

  • Prend en charge ClickHouse 1.1.54390 et supérieur
  • Famille MergeTree de moteurs de table uniquement
  • Ne prend pas en charge le stockage hiérarchisé de sauvegarde ou la politique de stockage
  • La taille de sauvegarde maximale sur le stockage cloud est de 5 To
  • Le nombre maximal de pièces sur AWS S3 est de 10 000

(1) Téléchargez le progiciel clickhouse-backup

Le moyen officiel de fournir une version binaire et un package rpm

Adresse github : https://github.com/AlexAkulov/clickhouse-backup

Adresse de téléchargement : https://github.com/AlexAkulov/clickhouse-backup/releases/download/v1.0.0/clickhouse-backup.tar.gz

(2), modifier le fichier de configuration clickhouse-backup config.yml

# Modifiez ce fichier de configuration en fonction de la propre configuration de clickhouse, comme le répertoire de données de clickhouse, le mot de passe de la base de données, l'adresse de surveillance et le port

Instructions de configuration officielles :

En plus de la sauvegarde sur la machine locale, clickhouse-backup prend également en charge la sauvegarde à distance, la sauvegarde sur s3 [object storage], ftp, sftp, et prend également en charge l'accès à l'aide de l'interface api

(3), afficher les commandes liées à clickhouse-backup

1. Afficher tous les éléments de configuration par défaut

 clickhouse-backup default-config

2. Afficher les tables qui peuvent être sauvegardées [Toutes les tables sous les bibliothèques système et par défaut ont été filtrées dans le fichier de configuration]

 [root@localhost clickhouse-backup]# clickhouse-backup tablesbrdatasets.hits_v1  1.50GiB  default 

3. Créez une sauvegarde

#Sauvegarde complète de la base de données

clickhouse-backup create

La sauvegarde est stockée dans $data_path/backup, le nom de la sauvegarde par défaut est l'horodatage, vous pouvez spécifier manuellement le nom de la sauvegarde

 clickhouse-backup create 

La sauvegarde contient deux répertoires :

  • répertoire de métadonnées : contient le code DDL SQL requis pour la recréation
  • répertoire shadow : contient les données résultant des opérations ALTER TABLE ... FREEZE

sauvegarde de table unique

 clickhouse-backup create [-t, --tables=<db>.<table>] <backup_name>

table de sauvegarde datasets.hits_v1

 clickhouse-backup create  -t datasets.hits_v1

Sauvegarder plusieurs tables datasets.hits_v1, datasets.hits_v2

 clickhouse-backup create  -t datasets.hits_v1,datasets.hits_v2

4. Afficher les enregistrements de sauvegarde

[root@localhost datasets]# clickhouse-backup list

5. Supprimez le fichier de sauvegarde

 [root@localhost datasets]# clickhouse-backup delete local 2021-09-06T14-03-23

(4), récupération de données

grammaire:

clickhouse-backup restaurer le nom de la sauvegarde

4. Utilisez clickhouse-backup pour sauvegarder et restaurer les données

4.1, sauvegarde et restauration locales

4.2. Sauvegarde et restauration à distance de différentes machines

5. Utilisez des scripts pour effectuer une sauvegarde à distance régulière sur différentes machines

6. Foire aux questions

1. Symptôme : lors de l'utilisation de clickhouse-backup pour restaurer des données, un problème d'UUID est signalé

Je suppose que tu aimes

Origine blog.csdn.net/inthirties/article/details/128478751
conseillé
Classement