configuración del modo de clúster clickhouse

1. Soluciones comunes para clústeres distribuidos

plan características
Solución 1: MergeTree + Distribuido 1. Sin copia. 2. No se requiere zk. 3. Solo se pueden escribir tablas locales
Solución 2: MergeTree + Distribuido + replicación de clúster 1. Escriba la tabla de conglomerados. 2. Utilice el mecanismo de replicación de clústeres para resolver el problema de la réplica. 3. No es necesario usar zk
Solución 3: ReplicatedMergeTree + Distributed 1. Escriba la tabla local y distribúyala a través de zk como una copia. 2. Escriba en la tabla local y lea la tabla del clúster. 3. Altamente dependiente de zk

 Aquí, debido a que los datos se importan de la tabla Hive, no hay necesidad de una copia, así que elija la opción uno

2. Archivo de configuración independiente

Clickhouse puede usar sustituciones para escribir algunos elementos de configuración por separado en un archivo. La ventaja de esto es que es conveniente para la administración y no necesita mantener config.xml cada vez

3. Archivo de configuración

1)usuarios.xml

Debido a que está escribiendo en la tabla local, puede configurar una nueva cuenta de solo lectura dedicada a la tabla distribuida para leer la tabla distribuida. Agregue la configuración en la etiqueta <users>. Tenga en cuenta que password_sha256_hex necesita crear una contraseña usted mismo. El método es: echo -n '123456' | sha256sum | tr -d '-'

        <clst_read>
            <password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
            <networks>
                <ip>::/0</ip>
            </networks>

            <!-- Settings profile for user. -->
            <profile>readonly</profile>

            <!-- Quota for user. -->
            <quota>default</quota>
        </clst_read>

2)config.xml

Agregue la etiqueta include_from y el atributo incl

1. Agregue una configuración bajo la etiqueta <yandex>, lo que significa introducir un archivo de configuración adicional /etc/clickhouse-server/metrika.xml

<include_from>/etc/clickhouse-server/metrika.xml</include_from>     <!-- 设置集群配置文件 -->

2. Modifique la etiqueta <remote_servers> y agregue el atributo incl, indicando que la etiqueta remote_servers se reemplaza con la etiqueta ck_remote_servers (configurada en metrika.xml)

<remote_servers incl="ck_remote_servers">  <!-- 指定incl -->

3) métrica.xml

Cree un archivo de configuración de tabla distribuida, el siguiente es un archivo de configuración completo

<yandex>
    <ck_remote_servers>  <!--标签名,用于替换 config.xml中的remote_servers标签-->
       <dw_cluster> <!--集群名称 -->
            <shard>
                <replica>
                    <host>ip</host>
                    <port>9100</port>
                    <user>clst_read</user> <!-- 专门配置的一个集群只读账号 -->
                    <password>123456</password>
                </replica>
            </shard>
            <shard>
                <replica>
                    <host>ip</host>
                    <port>9100</port>
                    <user>clst_read</user>
                    <password>123456</password>
                </replica>
            </shard>
        </dw_cluster>
    </ck_remote_servers>
</yandex>

4) Crear una tabla distribuida

Después de reiniciar el servicio, cree una tabla distribuida:

-- 创建本地表,多个节点都需要创建
create table dw_local.hits(p Date, i Int32) ENGINE =MergeTree order by p;
-- 插入本地表数据,节点1
insert into dw_local.hits(p,i) values('2021-01-01',1),('2021-01-01',2),('2021-01-02',3),('2021-01-02',4);

-- 插入本地表数据,节点2
insert into dw_local.hits(p,i) values('2021-01-01',5),('2021-01-01',6),('2021-01-02',7),('2021-01-02',8);

-- 创建分布式表:
-- dw.hits :分布式表名
-- dw_cluster:集群名称
-- dw_local:本地表的库名
-- hits:本地表名
CREATE TABLE IF NOT EXISTS dw.hits   (p Date, i Int32) ENGINE = Distributed(dw_cluster, dw_local, hits);

-- 查询分布式表
select * from dw.hits t limit 10;

-- 查询本地表
select * from dw_local.hits t limit 10;

Supongo que te gusta

Origin blog.csdn.net/cakecc2008/article/details/122829314
Recomendado
Clasificación