Clickhouse引擎三: 外部存储引擎

Clickhouse引擎三: 外部存储引擎

HDFS

Clickhouse 可以直接从 HDFS 中指定的目录下加载数据 , 自己根本不存储数据, 仅仅是读取数据 ENGINE = HDFS(hdfs_uri,format) ·hdfs_uri 表示 HDFS 的文件存储路径; ·format 表示文件格式(指 ClickHouse 支持的文件格式,常见的有 CSV、TSV 和 JSON 等)。 注意的是 HDFS 引擎在处理数据的时候分为两种处理方式:

1 可以读写 HDFS 上的数据

在建表的时候指定HDFS上一个不存在的目录,我们可以向表中插如数据,我们会发现数据以指定的格式 存储在 HDFS
上,注意的是 CK 不支持删除修改和追加数据 ,只能一次性的写入数据 , 删除表以后数据 也不会被删除 ! 所以这种我们一般不是使用! create table test_hdfs( id Int8 , name String , age UInt8 , gender String )engine=HDFS(‘hdfs://linux01:8020/ck/data/test_hdfs’,CSV) ; insert into test_hdfs values(4,‘ww’,35,‘M’) ; [root@linux01 apps]# hdfs dfs -cat /ck/data/test_hdfs 4,“ww”,35,“M” 删除表以后,数据忽然会被删除

2 只负责读取 HDFS 上的数据 ,并不能对数据进行写操作

我们一般期望的是数据有其他方式写入到 HDFS系统中, 使用 CK 的 HDFS 引擎加载处理分析数据.
这种形式类似Hive的外挂表,由其他系统直接将文件写入HDFS。通过HDFS表引擎的hdfs_uri和format 参数分别与 HDFS 的文件路径、文件格式建立映射。其中,hdfs_uri 支持以下几种常见的配置方法:
 绝对路径:会读取指定路径的单个文件,例如/clickhouse/hdfs_table1。

通配符:匹配所有字符,例如路径为/clickhouse/hdfs_table/,则会读取/click-house/hdfs_table 路径 下的所有文件。

 ? 通 配 符 : 匹 配 单 个 字 符 , 例 如 路 径 为 /clickhouse/hdfs_table/organization_?.csv , 则 会 读 取 /clickhouse/hdfs_table 路径下与 organization_?.csv 匹配的文件,其中?代表任意一个合法字符。

 {M…N}数字区间:匹配指定数字的文件,例如路径为/clickhouse/hdfs_table/organization_{1…3}.csv, 则 会 读 取 /clickhouse/hdfs_table/ 路 径 下 的 文 件 organization_1.csv 、 organization_2.csv 和 organization_3.csv。

Mysql

MySQL 表引擎可以与 MySQL 数据库中的数据表建立映射,并通过 SQL 向其发起远程查询, 包括 SELECT 和
INSERT,它的声明方式如下:

ENGINE = MySQL('host:port', 'database', 'table', 'user', 'password'[, replace_

query, ‘on_duplicate_clause’]) 其中各参数的含义分别如下:
·host:port 表示 MySQL 的地址和端口。
·database 表示数据库的名称。
·table 表示需要映射的表名称。
·user 表示 MySQL 的用户名。
·password 表示 MySQL 的密码。
·replace_query 默认为 0,对应 MySQL 的 REPLACE INTO 语法。如果将它设置为 1,则会用 REPLACE INTO 代替 INSERT INTO。
·on_duplicate_clause 默认为 0,对应 MySQL 的 ON DUPLICATE KEY 语法。如果需要使用该设置, 则必须将 replace_query 设置成 0。

那么在正式使用 MySQL 引擎之前首先当前机器要有操作 MySQL 数据的权限 ,开放 MySQL 的远程连 连接权限操作如下:

  1. set global validate_password_policy=0;
  2. set global validate_password_length=1; 这个两个设置以后 密码很简单不会报错
  3. grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;
  4. flush privileges;

FILE

File 表引擎能够直接读取本地文件的数据,通常被作为一种扩充手段来使用。例如:它可以读取由其他系统生成的数
据文件,如果外 部系统直接修改了文件,则变相达到了数据更新的目的;它可以将 ClickHouse 数据导出为本地文件;它还可以用于数据格式转换等场景。除此以外,File 表引擎也被应用 于 clickhouse-local 工具 ENGINE = File(format)

KAFKA

//todo…

JDBC

//todo…

你可能感兴趣的:(clickhouse,大数据,大数据)