Si vous utilisez ClickHouse Cloud sur Google Cloud, cette page ne vous concerne pas, car vos services utilisent déjà Google Cloud Storage. Si vous cherchez à
SELECT ou INSERT des données depuis GCS, veuillez consulter la fonction de table gcs.MergeTree avec stockage sur GCS
Création d’un disque
conf.d. Un exemple de déclaration d’un disque GCS est présenté ci-dessous. Cette configuration comprend plusieurs sections permettant de configurer le « disque » GCS, le cache et la policy spécifiée dans les requêtes DDL lorsque des tables doivent être créées sur le disque GCS. Chacun de ces éléments est décrit ci-dessous.
configuration du stockage > disks > gcs
- Le type du disque est
s3, car l’API S3 est utilisée. - L’endpoint fourni par GCS
- La clé HMAC et le secret du compte de service
- Le chemin des métadonnées sur le disque local
Configuration du stockage > disks > cache
gcs.
Configuration du stockage > politiques > gcs_main
gcs en spécifiant la politique gcs_main. Par exemple, CREATE TABLE ... SETTINGS storage_policy='gcs_main'.
Création d’une table
Gestion de la réplication
ReplicatedMergeTree. Consultez le guide répliquer un shard unique sur deux régions GCP à l’aide de GCS pour en savoir plus.
En savoir plus
Utiliser Google Cloud Storage (GCS)
Planifier le déploiement
- Deux nœuds du serveur ClickHouse, dans deux régions GCP
- Deux buckets GCS, déployés dans les mêmes régions que les deux nœuds du serveur ClickHouse
- Trois nœuds ClickHouse Keeper, dont deux sont déployés dans les mêmes régions que les nœuds du serveur ClickHouse. Le troisième peut se trouver dans la même région que l’un des deux premiers nœuds Keeper, mais dans une zone de disponibilité différente.
Préparer des machines virtuelles
* Il peut s’agir d’une autre zone de disponibilité dans la même région que 1 ou 2.
Déployer ClickHouse
chnode1 et chnode2 dans les exemples de configuration.
Placez chnode1 dans une région GCP et chnode2 dans une autre. Dans ce guide, us-east1 et us-east4 sont utilisés pour les VM Compute Engine ainsi que pour les buckets GCS.
Ne démarrez pas
clickhouse server tant qu’il n’est pas configuré. Contentez-vous de l’installer.Déployer ClickHouse Keeper
keepernode1, keepernode2 et keepernode3. keepernode1 peut être déployé dans la même région que chnode1, keepernode2 avec chnode2, et keepernode3 dans l’une ou l’autre région, mais dans une zone de disponibilité différente de celle du nœud ClickHouse de cette région.
Consultez les instructions d’installation lorsque vous effectuez les étapes de déploiement sur les nœuds ClickHouse Keeper.
Créer deux buckets
us-east1 et un dans us-east4. Les buckets sont monorégionaux, de classe de stockage standard et non publics. Lorsque cela vous est demandé, activez la prévention de l’accès public. Ne créez pas de dossiers ; ils seront créés lorsque ClickHouse écrira dans le stockage.
Si vous avez besoin d’instructions pas à pas pour créer des buckets et une clé HMAC, développez Create GCS buckets and an HMAC key et suivez les instructions :
Créer des buckets GCS et une clé HMAC
Créer des buckets GCS et une clé HMAC
ch_bucket_us_east1
ch_bucket_us_east4
Générer une clé d’accès
Créer une clé HMAC et un secret pour un compte de service
Ouvrez Cloud Storage > Settings > Interoperability et choisissez soit une Access key existante, soit CREATE A KEY FOR A SERVICE ACCOUNT. Ce guide décrit la procédure de création d’une nouvelle clé pour un nouveau compte de service.Ajouter un nouveau compte de service
S’il s’agit d’un projet sans compte de service existant, cliquez sur CREATE NEW ACCOUNT.La création du compte de service se fait en trois étapes. Lors de la première, donnez au compte un nom, un ID et une description explicites.Dans la boîte de dialogue des paramètres Interoperability, le rôle IAM Storage Object Admin est recommandé ; sélectionnez-le à la deuxième étape.La troisième étape est facultative et n’est pas utilisée dans ce guide. Vous pouvez autoriser des utilisateurs à disposer de ces privilèges selon vos politiques.La clé HMAC du compte de service s’affichera. Enregistrez ces informations, car elles seront utilisées dans la configuration de ClickHouse.Configurer ClickHouse Keeper
server_id (première ligne mise en évidence ci-dessous). Modifiez le fichier en y indiquant les noms d’hôte de vos serveurs ClickHouse Keeper, puis, sur chacun des serveurs, définissez server_id de façon à ce qu’il corresponde à l’entrée server appropriée dans raft_configuration. Comme, dans cet exemple, server_id est défini sur 3, nous avons mis en évidence les lignes correspondantes dans raft_configuration.
- Modifiez le fichier avec vos noms d’hôte et assurez-vous qu’ils sont résolus depuis les nœuds de serveur ClickHouse et les nœuds Keeper
- Copiez le fichier à l’emplacement approprié (
/etc/clickhouse-keeper/keeper_config.xmlsur chacun des serveurs Keeper) - Modifiez
server_idsur chaque machine en fonction de son numéro d’entrée dansraft_configuration
/etc/clickhouse-keeper/keeper_config.xml
Configurer le serveur ClickHouse
bonne pratiqueCertaines étapes de ce guide vous demanderont de placer un fichier de configuration dans
/etc/clickhouse-server/config.d/. Il s’agit de l’emplacement par défaut, sur les systèmes Linux, des fichiers de surcharge de configuration. Lorsque vous placez ces fichiers dans ce répertoire, ClickHouse fusionne leur contenu avec la configuration par défaut. En plaçant ces fichiers dans le répertoire config.d, vous éviterez de perdre votre configuration lors d’une mise à niveau.Réseau
/etc/clickhouse-server/config.d/network.xml
Serveurs ClickHouse Keeper distants
- Modifiez les noms d’hôte pour qu’ils correspondent à ceux de vos hôtes Keeper
/etc/clickhouse-server/config.d/use-keeper.xml
Serveurs ClickHouse distants
replace="true" est ajouté à l’entrée remote_servers afin que, lorsque cette configuration est fusionnée avec la configuration par défaut, elle remplace la section remote_servers au lieu de s’y ajouter.
- Modifiez le fichier avec vos noms d’hôte et assurez-vous qu’ils peuvent être résolus depuis les nœuds serveur ClickHouse
/etc/clickhouse-server/config.d/remote-servers.xml
Identification des répliques
replica_1, et sur l’autre serveur comme replica_2. Les noms peuvent être modifiés ; en reprenant notre exemple où une réplique est stockée en Caroline du Sud et l’autre en Virginie du Nord, les valeurs pourraient être carolina et virginia ; assurez-vous simplement qu’ils sont différents sur chaque machine.
/etc/clickhouse-server/config.d/macros.xml
Stockage dans GCS
disks et policies. Le disque configuré ci-dessous est nommé gcs et est de type s3. Le type est s3, car ClickHouse accède au bucket GCS comme s’il s’agissait d’un bucket AWS S3. Deux copies de cette configuration seront nécessaires, une pour chacun des deux nœuds du serveur ClickHouse.
Ces substitutions doivent être effectuées dans la configuration ci-dessous.
Ces substitutions diffèrent entre les deux nœuds du serveur ClickHouse :
REPLICA 1 BUCKETdoit être défini sur le nom du bucket situé dans la même région que le serveurREPLICA 1 FOLDERdoit être remplacé parreplica_1sur l’un des serveurs, et parreplica_2sur l’autre
access_key_iddoit être défini sur la clé HMAC générée précédemmentsecret_access_keydoit être défini sur le secret HMAC généré précédemment
/etc/clickhouse-server/config.d/storage.xml
Démarrer ClickHouse Keeper
Vérifier l’état de ClickHouse Keeper
netcat. Par exemple, mntr renvoie l’état du cluster ClickHouse Keeper. Si vous exécutez la commande sur chacun des nœuds Keeper, vous verrez que l’un est leader et que les deux autres sont des followers :
Démarrer le serveur ClickHouse
chnode1 et chnode, exécutez :
Vérification
Vérifier la configuration des disques
system.disks doit contenir une entrée pour chaque disque :
- default
- gcs
- cache
Vérifiez que les tables créées sur le cluster le sont sur les deux nœuds
Vérifiez que des données peuvent être insérées
Vérifiez que la politique de stockage gcs_main est utilisée pour la table.
Vérifier dans la console Google Cloud
storage.xml. Développez ces dossiers et vous verrez de nombreux fichiers, correspondant aux partitions de données.