- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
04-何正杰-openLooKeng ClickHouse Connector 在多数据中心下的应用探索
议题
openLooKeng ClickHouse Connector 在多数据中心下的应用探索
作为中科院信工所硕士,何正杰老师具有丰富的大数据平台研发经验,目前主要负责数据虚拟化引擎openLooKeng ClickHouse Connector 适配与性能优化。Galaxy 网络流量数据平台承担接收每秒百万级消息存储和PB级数据规模的OLAP计算需求,ClickHouse 作为平台的核心组件,具备大规模的并行处理,向量化引擎,列式存储,支持近似计算等能力,但同时它也有专用数据库的问题,在多数据中心融合查询存在不足。为此,他们接入数据虚拟化引擎openLooKeng 作为服务的统一查询入口。那openLooKeng在其中发挥了什么优势和功能?本次活动,让我们听听何正杰老师的讲解。
展开查看详情
1 .openLooKeng ClickHouse Connector 在多数据中心下的应用探索 何正杰 信工所MESA团队研发工程师 https://openlookeng.io
2 . 目录 01 信息工程研究所 MESA 团队介绍 02 Galaxy 网络流量数据平台 03 openLooKeng 在 Galaxy 数据虚拟化引擎架构的应用实践 04 openLooKeng ClickHouse connector 开发 https://openlookeng.io
3 .01 信息工程研究所 MESA 团队介绍 科研方向 成果展示 https://openlookeng.io
4 .中国科学院信息工程研究所 • 研究所是中科院网络空间安全领域的总体所,面向国家战略需求,在信息安全科技领域,开 展基础理论与前沿技术研究,开发应用性技术与系统,为国家信息化进程提供核心关键技术 支撑与系统解决方案。 ● 攻研信息安全关键 ● 拥有涉密计算机系统 技术的核心单位 集成资质认证甲级资质 ● 统筹信息安全重大 ● 通过ISO9000质量管理 项目的总体单位 体系认证 ● 引领安全科技发展 方向的龙头单位 定位明确 资质规范 https://openlookeng.io
5 . 中科院信工所 MESA 团队介绍 • 面向网络空间安全,研究大规模网络智能信息处理的基本理论、模型、算法和关键技术,研 制可扩展、高可用、易使用的网络数据处理与分析系统 • 主要研究方向:大规模高性能网络信息处理 https://openlookeng.io
6 .0 Galaxy 网络流量数据平台 组件和作用 功能以及应用场景 2 https://openlookeng.io
7 . Galaxy 网络流量数据平台 Galaxy 网络流量数据平台是一个网络流量存储、检索和探索分析平台。集成大数据开源软件技 术,构建统一的数据服务,定制标准的元数据,目标帮助开发和分析人员提供统一接入口径, 从数据中获取核心的业务价值。 决策支持 数据分析 Point查询 对象文件 • 通用的流量日志处理方 运营大屏 IPLearning 数据 指标统计 报表定制 案 资源推荐 应用 业务中台 BI分析 实时推荐 探索分析 • 构建数据虚拟化引擎 流量分布 数据 • 实时数仓能力 Ad-hoc OLAP 检索与推荐 配置管理 Nacos 服务 API网关 服务 • 简单大数据处理方案 体系 HOS openLooKeng /DSL 资产管理 数 • 构建统一数据资产 据 Spark SQL Jobs 元数据 无缝 存储分 运 分 衔接 析引擎 维 HBase ClickHouse Druid ArangoDB 布 数据质量 体 式 数据标准 系 汇聚与 Kafk 作 数据 - Flume Storm GoHangout 业 质量 预处理 a 数据血缘 N 调 E 度 数据安全 Docker / K8S Z H 容器 基础层 原始网络流量 离线数据 标签数据 A 编排 https://openlookeng.io
8 . 技术演进 报表,OLAP 报表,OLAP Rest API Query Engine Apache HIVE Mysql Apache HDFS 数据量暴增 实时性 Oracle RAC1 Oracle RAC2 Flume Apache Storm 多业务? 多数据源? 自研日志线 Kafka 多事件数据? 平台 1.0 平台 2.0 https://openlookeng.io
9 .Galaxy 网络流量数据平台 场景 特点 技术 指标统计、实时推荐 实效性 列存快速分析、时序、 近似计算 存算一体 OLAP 准实时 列存快速分析 多维数据探索分析 网络实体画像 亿级实体 图模型 关系检索 十亿级关系实时检索更新 报表定制 任意维度 实时数仓 PB级 对象存储 海量数据存储 LSM、MOB https://openlookeng.io
10 . Galaxy 网络流量数据平台 报表系统 Dashboard大 屏 BI 系统 应用场景 日志检索 数据推荐 知识库 https://openlookeng.io
11 . ClickHouse 简介 • ClickHouse是Yandex开源的一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) • 在多个测试结果中,ClickHouse表现出了比同类可比较产品更优的性能 • 注意点 • 不支持事务 • 对于更新和删除支持较低 • 多表Join的性能不如单表查询 • 非完全兼容ANSI SQL标准 • 高并发支持有限,官方建议qps为100 Ref: https://clickhouse.tech/#independent-benchmarks https://openlookeng.io
12 .ClickHouse 简介 Ref: https://clickhouse.tech/benchmark/dbms https://openlookeng.io
13 .openLooKeng 在 Galaxy 中的应用实践 研 日 发 志 人 检 员 索 平 分 台 析 数据 Sql网关 ClickHouse集群 Kafka 人 ETL 员 自 研 产 BI 品 系 Prometheus监控 运 统 营 https://openlookeng.io
14 .0 openLooKeng 在 Galaxy 中的应用实践 数据引擎面临的难点痛点 在哪一层接入openLooKeng,为什么需要它 3 https://openlookeng.io
15 . openLooKeng 在 Galaxy 中的应用实践 • 数据引擎面临的难点痛点 • 方案一:跨数据中心部署ClickHouse 查询节点 ClickHouse 存储分 存储分 存储分 ClickHouse ClickHouse ClickHouse 析引擎 析引擎 析引擎 ETL ETL ETL … Docker / K8S Docker / K8S Docker / K8S 原始网络流量 原始网络流量 原始网络流量 数据中心1 数据中心2 数据中心3 https://openlookeng.io
16 . openLooKeng 在 Galaxy 中的应用实践 • 数据引擎面临的难点痛点 • 方案二:查询引擎对拆分sql数据再同一汇聚 查询引擎 sql1 SQL engine sql3 sql2 存储分 存储分 存储分 ClickHouse集群 ClickHouse集群 ClickHouse集群 析引擎 析引擎 析引擎 ETL ETL ETL … Docker / K8S Docker / K8S Docker / K8S 原始网络流量 原始网络流量 原始网络流量 数据中心1 数据中心2 数据中心3 https://openlookeng.io
17 .openLooKeng 给 Galaxy 平台带来更灵活的方案选择 Ref: 罗旦 华为高级开发工程师 https://openlookeng.io
18 .0 ClickHouse connector 开发分享 CH connector 实现的功能 CH connector 1.1和1.2的测试 4 https://openlookeng.io
19 . ClickHouse connector 实现 • 数据类型转换:ClickHouse -> openLooKeng Code: https://openlookeng.io https://github.com/Heatao/openLooKeng_ClickHouseConnector
20 . ClickHouse connector 适配开发 • 基于Base JDBC开发CH connector Base-JDBC openLookeng kernal openLooKeng-kernal JdbcPlugin BaseJdbcClient SPI Base-JDBC PluginManager 注册 CH-Connector HBase Hive mySQL sqlserver postgressql CHClientPlugin CHClient postgresq Hive&H Configuratio mysql sqlserver JDB JDBC l Hbase DFS n JDBC client tools driver driver driver CHClientModul e ConnectorFact ory mys sqlser postg HBas metas HDFS ql ver resql e tore Ref: 华为高级工程师黎一泽,王明月的技术分享 https://space.bilibili.com/627629884/video https://openlookeng.io
21 . ClickHouse connector 适配开发 • 非下推情况 • io.prestosql.plugin.jdbc.JdbcPlugin • io.prestosql.plugin.jdbc.JdbcClient • io.prestosql.plugin.jdbc.JdbcModule • io.prestosql.plugin.jdbc.BaseJdbcConfig • 在openLooKeng kernel计算 • 无法利用数据源的优势 openLookeng kernal CH connector SQL1 SQL2 select * from table https://openlookeng.io …
22 .openLooKeng 下推 TranslateExpressions ApplyConnectorOptimizati on Push down SQL select * from tablename https://openlookeng.io
23 . ClickHouse connector 实现 • 下推算子 • 继承Base JDBC connector • ClickHouse非标准SQL • 对于表达式的微调整 • 对函数的重写 openLooKeng ClickHouse https://openlookeng.io
24 . ClickHouse connector 实现 • 函数映射 • 直接映射 • 常用函数:聚合统计函数、数学函数、字符串函、时间日期函数 • 不满足业务需求 函数类型 函数语法 适配开发处理 聚合统计函数 CORR($1,$2),STDDEV($1),stddev_pop($1),stddev_samp($1), 大多数基本一致,直接映射即可 skewness($1),kurtosis($1),VARIANCE($1),var_samp($1) 数学函数 ACOS($1),ASIN($1),ATAN($1),ATAN2($1,$2),CEIL($1), 大多数基本一致,直接映射即可,部分函数需要对不同参数适 CEILING($1),COS($1),e(),EXP($1),FLOOR($1),LN($1), 配转换,分别有:1:n、n:1、n:m、1:m等类型。 LOG10($1),LOG2($1),MOD($1,$2),pi(),POW($1,$2), POWER($1,$2),RAND(),RANDOM(),ROUND($1),ROUND($1,$2), SIGN($1),SIN($1),SQRT($1),TAN($1) 字符串函数 CONCAT($1,$2),LENGTH($1),LOWER($1),LTRIM($1), 大多数基本一致,直接映射即可,部分函数需要对不同参数适 REPLACE($1,$2),REPLACE($1,$2,$3),RTRIM($1), 配转换,分别有:1:n、n:1、n:m、1:m等类型。 STRPOS($1,$2),SUBSTR($1,$2,$3),POSITION($1,$2),TRIM($1), UPPER($1) 时间日期函数 YEAR($1),MONTH($1),QUARTER($1),WEEK($1),DAY($1), 直接映射 HOUR($1),MINUTE($1),SECOND($1),DAY_OF_WEEK($1), DAY_OF_MONTH($1),DAY_OF_YEAR($1) Code: https://openlookeng.io https://github.com/Heatao/openLooKeng_ClickHouseConnector
25 . ClickHouse connector 实现 • 函数映射 • v1.1 相似语义替换 • 只能覆盖少部分函数 • 语法不规范 • 例子: ClickHouse函数 openLooKeng函数 适配开发处理 toDateTime($1) DATE_PARSE($1, $2) DATE_PARSE($1, '%Y-%m-%d %H:%i:%s') toDate($1) DATE_PARSE($1, $2) DARE_PARSE($1, '%Y-%m-%d') Code: https://openlookeng.io https://github.com/Heatao/openLooKeng_ClickHouseConnector
26 . ClickHouse connector 实现 • 函数映射 • v1.2 外部函数的注册下推 • ClickHouseExternalFunctionHub#getExternalFunctions • ClickHouseExternalDateTimeFunctions#getFunctionsInfo • 扩展实现 • ApplyRemoteFunctionPushDown#rewriteRemoteFunction • BaseJdbcRowExpressionConverter#visitCall openLookeng kernal openLookeng kernal 白名单 OLK func CH connector CH connector CH func CH func Ref: https://openlookeng.io/zh- https://openlookeng.io cn/docs/docs/develop/externalfunction-registration-
27 . connector 目前的限制 • 类型支持暂不全面 • 支持常见类型 • Int128,Int256,UInt256,IPV4… • 关于array的常用函数暂时不支持 • 单表查询性能具有一定的损耗 Ref: https://openlookeng.io/zh- https://openlookeng.io cn/docs/docs/develop/externalfunction-registration-
28 . CH connector性能测试 • TPC - Transaction process performance Council • 事务处理性能测试委员会 • TPC不给出基准程序的代码,而只给出基准程序的标准规范 • TPC-H • 评价特定查询的决策支持能力,强调服务器在数据挖掘、分析处理方面的能 力 • 测试数据库系统复杂查询的响应时间,以每小时执行的查询数作为度量指标 • 包含8张表,22个SQL查询 • TPC-DS • TPC-DS采用星型、雪花型等多维数据模式 • 包含7张事实表,17张纬度表平均每张表含有18列 • 其工作负载包含99个SQL查询,覆盖SQL99和2003的核心部分以及OLAP • 这个测试集包含对大数据集的统计、报表生成、联机查询、数据挖掘等复杂 应用 https://openlookeng.io
29 . CH connector性能测试 • SSB • Star Schema Benchmark • 基于TPC-H修改,并专门针对星型模型OLAP场景下 的测试工具,共13条测试语句 Ref: https://clickhouse.tech/docs/en/getting-started/example- https://openlookeng.io datasets/star-schema