ClickHouse如何整合数据源:MySQL、HDFS...

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: ClickHouse 是一个强大的列式数据库管理系统,支持多种数据源。常见的数据源包括外部数据源(如 HDFS、File、URL、Kafka 和 RabbitMQ)、数据库(如 MySQL 和 PostgreSQL)和流式数据(如 Stream 和 Materialized Views)。本文介绍了如何从 MySQL 和 HDFS 读取数据到 ClickHouse 中,包括创建数据库、映射表和查询数据的具体步骤。通过这些方法,用户可以方便地将不同来源的数据导入 ClickHouse 进行高效存储和分析。

一、ClickHouse数据源


添加图片注释,不超过 140 字(可选)


ClickHouse 作为一个强大的列式数据库管理系统,支持多种数据源,使得用户能够方便地将数据导入 ClickHouse 进行存储和分析。以下是常见的 ClickHouse 数据源:

外部数据源

  1. HDFS: 支持从 Hadoop 分布式文件系统 (HDFS) 读取数据,适合大数据处理场景。
  2. File: 支持从本地文件系统中读取数据,常见的格式包括 CSV、TSV、JSON、Parquet 和 ORC 等。
  3. URL: 允许从 HTTP/HTTPS URL 读取数据,可以用于从 Web 服务或远程文件读取数据。
  4. Kafka: 支持从 Apache Kafka 消息队列读取数据,适用于实时数据流处理和分析。
  5. RabbitMQ: 支持从 RabbitMQ 消息队列读取数据,类似于 Kafka 的数据流处理。

数据库

  1. MySQL: 支持通过 MySQL 表引擎从 MySQL 数据库读取数据,可以实现 ClickHouse 和 MySQL 之间的数据集成。
  2. PostgreSQL: 通过 PostgreSQL 表引擎,可以从 PostgreSQL 数据库中读取数据,实现跨数据库查询。

流式数据

  1. Stream: 支持通过流式数据源进行实时数据处理,适合需要低延迟的数据分析和监控。
  2. Materialized Views: 可以基于流式数据源创建物化视图,实现实时数据聚合和预计算。



二、ClickHouse读取MySQL

创建ClickHouse数据库

首先,我们需要在ClickHouse中创建一个数据库,用于存放从MySQL导入的数据。可以使用以下命令创建数据库:

CREATE DATABASE IF NOT EXISTS clickhouse_schedule;

这个命令会检查clickhouse_db数据库是否存在,如果不存在,则创建它。


添加图片注释,不超过 140 字(可选)


在ClickHouse中创建MySQL表的映射

接下来,我们需要在ClickHouse中创建一个MySQL表的映射。这可以通过使用ClickHouse的MySQL数据库引擎来实现。以下是创建映射的示例命令:

use clickhouse_schedule; CREATE TABLE IF NOT EXISTS  clickhouse_schedule.qrtz_job_details  (   `SCHED_NAME` varchar(120) NOT NULL,   `JOB_NAME` varchar(200) NOT NULL,   `JOB_GROUP` varchar(200) NOT NULL,   `DESCRIPTION` varchar(250) DEFAULT NULL,   `JOB_CLASS_NAME` varchar(250) NOT NULL,   `IS_DURABLE` varchar(1) NOT NULL,   `IS_NONCONCURRENT` varchar(1) NOT NULL,   `IS_UPDATE_DATA` varchar(1) NOT NULL,   `REQUESTS_RECOVERY` varchar(1) NOT NULL,   `JOB_DATA` blob ) ENGINE = MySQL('ip:port', '{数据库名称}', '{表名称}', '{username}', '{password}') AS SELECT * FROM qrtz_job_details;

在这个命令中,我们指定了MySQL服务器的地址、数据库名、表名以及访问MySQL所需的用户名和密码。clickhouse_schedule是在ClickHouse中创建的表,它将映射到MySQL中名为qrtz_job_details的表。

查询数据

导入数据后,我们可以像查询普通ClickHouse表一样查询映射表:

SELECT * FROM clickhouse_schedule.qrtz_job_details;

这个命令会返回clickhouse_table中所有记录。


添加图片注释,不超过 140 字(可选)


三、ClickHouse读取HDFS

使用CREATE TABLE语句和HDFS引擎来创建表。以下是一个示例命令,它创建了一个表,该表从HDFS上的TSV格式文件中读取数据:

CREATE TABLE hdfs_table (     column1_name column1_type,     column2_name column2_type,     ... ) ENGINE = HDFS('hdfs://hdfs_host:port/path_to_file', 'TSV')

  • hdfs_table是创建的表的名称
  • column1_namecolumn2_name是列的名称
  • column1_typecolumn2_type是列的数据类型
  • hdfs://hdfs_host:port/path_to_file是指向HDFS上文件的URI
  • TSV是文件的格式。



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
消息中间件 分布式计算 关系型数据库
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
大数据-140 - ClickHouse 集群 表引擎详解5 - MergeTree CollapsingMergeTree 与其他数据源 HDFS MySQL
68 0
|
2月前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
3月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
206 6
|
3月前
|
SQL 分布式计算 监控
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
Hadoop-20 Flume 采集数据双写至本地+HDFS中 监控目录变化 3个Agent MemoryChannel Source对比
75 3
|
3月前
|
SQL 分布式计算 Hadoop
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
Hadoop-14-Hive HQL学习与测试 表连接查询 HDFS数据导入导出等操作 逻辑运算 函数查询 全表查询 WHERE GROUP BY ORDER BY(一)
61 4
|
3月前
|
存储 分布式计算 资源调度
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(一)
97 5
|
3月前
|
资源调度 数据可视化 大数据
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
大数据-04-Hadoop集群 集群群起 NameNode/DataNode启动 3台公网云 ResourceManager Yarn HDFS 集群启动 UI可视化查看 YarnUI(二)
42 4
|
3月前
|
XML 分布式计算 资源调度
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(一)
208 5
|
3月前
|
分布式计算 资源调度 Hadoop
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
Hadoop-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带POM 详细代码 图文等内容
129 3
|
3月前
|
XML 资源调度 网络协议
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
大数据-02-Hadoop集群 XML配置 超详细 core-site.xml hdfs-site.xml 3节点云服务器 2C4G HDFS Yarn MapRedece(二)
179 4