datahub添加mysql/hive数据源

本文档介绍了如何安装datahub的mysql插件,并通过UI和CLI方式配置数据源,提取元数据到datahub。首先,使用pip3安装插件,然后在UI界面创建并配置数据源,包括设置加密的账号密码、定时刷新和数据源命名。对于CLI,创建配置文件并执行命令将元数据导入。完成这些步骤后,可以在datahub中查看和管理元数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、如果没有安装过datahub的mysql插件,先安装(mysql源官方文档)

pip3 install 'acryl-datahub[mysql]'

二、使用ui Ingestion
可以先配置变量,加密账号密码,避免配置文件中明文存储
在这里插入图片描述

2.1 访问localhost:9002/ingestion,点击创建新的数据源
在这里插入图片描述
2.2 选择数据源
在这里插入图片描述
2.3. 修改配置文件内容
在这里插入图片描述

2.4 设置定时调度刷新元数据
在这里插入图片描述
2.5 设置当前数据源名称
在这里插入图片描述

完成后刷新页面,可以看到刚刚设置的数据源,可以点击执行一次
在这里插入图片描述
第一次刷云数据会自动安装对应插件,所以有可能非常慢
hive和mysql配置类似,就不重复了
配置执行后,就可以在首页看到元数据信息了
在这里插入图片描述

二、使用CLI Ingestion
创建一个配置文件来需要提取的数据源

vi recipe.yml

source: 
    type: "mysql"
    config: 
        host_port: "localhost:3306"
        database: "test"
        username: "${MYSQL_USERNAME}"
        password: "${MYSQL_PASSWORD}"

sink: 
    type: datahub-rest 
    config: 
        server: "http://xxxx:8080"

执行提取命令,将元数据提取到datahub

datahub ingest -c recipe.yml
数据仓库的数据采集流程是构建数据仓库的核心环节之一,其主要目标是从各种数据源中提取数据,并将其转换为适合分析的结构化格式,最终加载到数据仓库中。尚硅谷的数据仓库项目提供了完整的实践方案,涵盖了用户行为数据采集、业务数据采集、实时与离线处理等多个方面。 ### 数据采集流程概述 在尚硅谷的数据仓库项目中,数据采集通常分为两个主要部分:**用户行为数据采集**和**业务系统数据采集**。 #### 用户行为数据采集 用户行为数据通常包括点击流日志、页面浏览记录、操作行为等非结构化或半结构化数据。这些数据通过埋点技术采集,随后经过清洗、解析、转换后进入数据仓库。 - **埋点方式**:前端埋点(如 Web 或 App 端)通过 SDK 发送事件数据到日志服务器或消息队列(如 Kafka 或 DataHub)。 - **传输与存储**:采集到的日志数据通常先写入消息中间件,再由消费者程序(如 Flume 或 Flink)消费并写入 HDFS 或 Hive 中进行持久化存储。 - **数据清洗与结构化**:使用 ETL 工具(如 Hive SQL、Spark SQL)对原始日志进行解析,提取关键字段,形成结构化表,便于后续建模与分析[^1]。 #### 业务系统数据采集 业务系统数据主要来源于企业的 OLTP 数据库(如 MySQL),包括订单、用户、商品等核心业务信息。 - **采集工具**:可以使用 Sqoop 定期从关系型数据库抽取数据到 Hadoop 生态系统中(如 Hive 或 HDFS)。对于实时场景,可以借助 DTS(Data Transmission Service)将数据同步到阿里云 DataHub 或 Kafka 中。 - **增量与全量采集**:支持全量导入和基于时间戳或自增 ID 的增量采集策略,确保数据的完整性与时效性。 - **数据转换**:采集后的业务数据需要进行维度建模前的预处理,例如去重、字段映射、标准化等步骤,以满足数据仓库的建模需求[^2]。 ### 实时数据采集流程示例 以尚硅谷的阿里云实时数仓项目为例,实时数据采集主要依赖于 DTS 和 DataHub: - **DTS 配置**:将 MySQL 表配置为 DTS 源端,推送数据至 DataHub。 - **字段说明**: - `dts_operation_flag` 标识操作类型(‘U’表示修改,‘I’表示插入,‘D’表示删除) - `dts_after_flag` 表示是否为变更后数据(‘Y’表示是) - `dts_order_status` 表示订单状态(1 下单,2 已支付)[^2] - **Flink 处理**:Flink 从 DataHub 中消费数据,进行实时计算、过滤、聚合等操作,最后写入到目标存储(如 ClickHouse、Hive ACID 表或 HBase)。 ### 离线数据采集流程示例 对于离线数据采集,Sqoop 是常用的工具之一,它可以从关系型数据库批量导入数据到 HDFS 或 Hive 中: ```bash sqoop import \ --connect jdbc:mysql://localhost:3306/ecommerce \ --username root \ --password password \ --table orders \ --target-dir /user/hive/warehouse/orders \ --fields-terminated-by ',' \ --lines-terminated-by '\n' \ --null-string '\\N' \ --null-non-string '\\N' ``` 上述命令将 MySQL 中的 `orders` 表导入 HDFS 路径 `/user/hive/warehouse/orders`,并在 Hive 中创建对应的外部表进行查询分析。 ### 数据采集中的注意事项 - **元数据管理**:确保采集过程中的元数据一致性,包括字段含义、数据类型、更新频率等。 - **异常监控**:建立完善的日志和报警机制,及时发现采集失败或延迟问题。 - **权限控制**:在采集敏感数据时,需遵循最小权限原则,防止数据泄露。 - **性能优化**:根据数据量级选择合适的采集策略,避免影响源系统的稳定性。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值