Clickhouse Remote函数使用记录

本文介绍了如何利用remote和remoteSecure函数在ClickHouse中访问远程服务器,包括它们的语法、参数以及在数据迁移过程中的应用实例。通过简单的SELECT和INSERT操作,可以实现实时的数据同步和迁移。
摘要由CSDN通过智能技术生成

使用前请参考官网 remote 函数 介绍。

1、简介

remote, remoteSecure 

允许您访问远程服务器,而无需创建 Distributed 表。remoteSecure - 与 remote 相同,但是会使用加密链接。

这两个函数都可以在 SELECT 和 INSERT 查询中使用。

2、语法

remote('addresses_expr', db, table[, 'user'[, 'password'], sharding_key])
remote('addresses_expr', db.table[, 'user'[, 'password'], sharding_key])
remoteSecure('addresses_expr', db, table[, 'user'[, 'password'], sharding_key])
remoteSecure('addresses_expr', db.table[, 'user'[, 'password'], sharding_key])

   参数说明:

  •    addresses_expr – 代表远程服务器地址的一个表达式。可以只是单个服务器地址。 服务器地址可以是 host:port 或 host

    host 可以指定为服务器名称,或是IPV4或IPV6地址。IPv6地址在方括号中指定。

    port 是远程服务器上的TCP端口。 如果省略端口,则 remote 使用服务器配置文件中的 tcp_port (默认情况为,9000),remoteSecure 使用 tcp_port_secure (默认情况为,9440)。

    IPv6地址需要指定端口。

    类型: String

  • db — 数据库名。类型: String
  • table — 表名。类型: String
  • user — 用户名。如果未指定用户,则使用 default 。类型: String
  • password — 用户密码。如果未指定密码,则使用空密码。类型: String
  • sharding_key — 分片键以支持在节点之间分布数据。 例如: insert into remote('127.0.0.1:9000,127.0.0.2', db, table, 'default', rand())。 类型: UInt32

3、使用案例

使用方式很简单:

SELECT * FROM remote('addresses_expr', db, table, 'user', 'password') LIMIT 7;

因此,可以借助这个功能实现数据迁移:

INSERT INTO <local_database>.<local_table>
SELECT * FROM remote('remote_clickhouse_addr', <remote_database>, <remote_table>, '<remote_user>', '<remote_password>')

操作流程

  1. 在源集群的 system.tables 表查询出数据库、表、DDL、分区、表引擎等信息
  2. 在目标集群上,运行 DDL 创建表,然后运行上述迁移语句复制数据
  3. 遍历所有表,重复执行第2步骤

 

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Halo 咯咯

有你的支持我会更加努力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值