Doris1.1.1多种异构数据源数据导入方案

这篇具有很好参考价值的文章主要介绍了Doris1.1.1多种异构数据源数据导入方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Doris分析型数据库

        Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即时查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。

Doris的几种数据源导入方案

Doris1.1.1多种异构数据源数据导入方案

1、Doris数据仓库的第一种导入方案(Stream Load):

创建Doris 基础的分桶表,OLAP类型
CREATE TABLE example_db.test
(
id int,
outpost_uid INT,
create_time DATETIME,
apply_open_id VARCHAR(1024),
scan_result INT,
reason VARCHAR(1024),
phone VARCHAR(100),
tz_place_id VARCHAR(100),
address_id INT,
u_id INT,
case_type INT
)
ENGINE=olap
AGGREGATE KEY(id, outpost_uid,create_time,apply_open_id,scan_result,reason,phone,tz_place_id,address_id,u_id,case_type)
COMMENT "my first doris table"
DISTRIBUTED BY HASH(id) BUCKETS 10;
将需要的TXT的文件,上传到服务器某一个文件夹下面。
/home/wx_outpost_scan.txt

书写Doris 数据倒入脚本命令

curl -u root:doris密码 -H "label:liuwunan2" -H "column_separator:," -T /home/wx_outpost_scan.txt http://BE_IP:8040/api/example_db/aaaaa/_stream_load

Doris1.1.1多种异构数据源数据导入方案

 Demo操作:

Doris1.1.1多种异构数据源数据导入方案

Doris1.1.1多种异构数据源数据导入方案

 数据样例对比

查看日志:
show load order by createtime desc limit 1\G

备注说明

数据倒入,此处需要注意一个问题:
column_separator 用于指定倒入文件中的列的分隔符,默认为\t,如果是不可见字符,则需要加\x作为前缀,使用十六进制来表示分隔符。
如Hive文件分隔符\x01,则需要指定为-H “column_separator:\x01”。

2、HDFS文本文件导入Doris中(Broker Load):

HDFS文件倒入Doris
需要启动apache_hdfs_broker组件:
直接启动,不需要修改配置文件 组件服务:BrokerBootstrap,【切记后台守护进程运行】

第1步:创建Doris表(指定对应字段)

create table student1
(
phone  varchar(50) ,
user_name String ,
id_card varchar(50),
times date
)
DUPLICATE KEY(phone)
DISTRIBUTED BY HASH(id_card) BUCKETS 10;

 第2步:创建HDFS数据导入的流

LOAD LABEL student
(
DATA INFILE("hdfs://HDFS_IP(活跃节点):8020/test_copy_copy/*")
INTO TABLE student1
COLUMNS TERMINATED BY "^"
(c1, c2, c3, c4)
set(
user_name=c1,
id_card=c2, 
phone=c3,
times=c4) 
)
WITH BROKER "BROKER_NAME"
(
"username"="hdfs",
"password"=""
)
PROPERTIES
(
 "timeout" = "3600",
 "max_filter_ratio"="0.1"
);

解释说明:

Doris1.1.1多种异构数据源数据导入方案

第3步:查看过程和结果

Doris1.1.1多种异构数据源数据导入方案

第4步:查看结果

Doris1.1.1多种异构数据源数据导入方案

3、Kafka实时接入数据进入Doris(Routine Load)

第1步:创建Doris 导入表

create table student222
(
id varchar(50),
user_name varchar(50) ,
times varchar(50)
)
DUPLICATE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 10;

第2步:创建Doris 接入Kafka 数据持续任务

CREATE ROUTINE LOAD student001 ON student222
COLUMNS TERMINATED BY ",",
COLUMNS(id, user_name, times )
PROPERTIES
(
    "desired_concurrent_number"="3",
    "max_batch_interval" = "10",
    "max_batch_rows" = "300000",
    "max_batch_size" = "209715200",
    "strict_mode" = "false"
)
FROM KAFKA
(
    "kafka_broker_list" = "zk_IP:9092,zk_IP:9092,zk_IP:9092",
    "kafka_topic" = "test_1",
    "property.group.id" = "test_1_001",
    "property.client.id" = "test_1_001",
    "property.kafka_default_offsets" = "OFFSET_END"
);

截图指示说明:

Doris1.1.1多种异构数据源数据导入方案

offset 可以指定从大于等于 0 的具体 offset,或者:
OFFSET_BEGINNING: 从有数据的位置开始订阅。
OFFSET_END: 从末尾开始订阅。
时间格式,如:"2021-05-22 11:00:00"
如果没有指定,则默认从 OFFSET_END 开始订阅 topic 下的所有 partition。

第3步:检查流任务状态(SHOW ROUTINE LOAD \G)

Doris1.1.1多种异构数据源数据导入方案

第4步:Kafka推送测试数据

Doris1.1.1多种异构数据源数据导入方案

第5步:查询Doris数据库数据

Doris1.1.1多种异构数据源数据导入方案

第六步:【重要说明】

show ROUTINE LOAD \G;

查看日志

取消

stop ROUTINE LOAD for  任务名称

stop ROUTINE LOAD for student001;

启动

resume routine load for student222;

"max_batch_interval" = "20", 每个子任务最大执行时间,单位是秒。范围为 5 到 60。默认为10。
"max_batch_rows" = "300000", 每个子任务最多读取的行数。必须大于等于200000。默认是200000。
"max_batch_size" = "209715200"每个子任务最多读取的字节数。单位是字节,范围是 100MB 到 1GB。默认是 100MB。
这三个参数,用于控制一个子任务的执行时间和处理量。当任意一个达到阈值,则任务结束。

4、Mysql外部表数据引用导入(支持CDC模式)

第一步:安装unixODBC相关依赖
yum install -y unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel
查看是否安装成功

[root@localhost ~]# odbcinst -j 
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8

第二步:安装ODBC

Doris1.1.1多种异构数据源数据导入方案

当前我的数据库版本为5.7 所以下载下面链接地址文件即可。

wget https://downloads.mysql.com/archives/get/p/10/file/mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm

Doris1.1.1多种异构数据源数据导入方案

下载完毕  在下载文件夹下面 进行安装

yum install -y mysql-connector-odbc-5.3.11-1.el7.x86_64.rpm

本博主已经下载:
链接:https://pan.baidu.com/s/12gPrDaDI7XyaJt4-mRd4Lg 
提取码:k0rl

Doris1.1.1多种异构数据源数据导入方案

所有BE节点都要相同操作 安装。

第3步:配置 unixODBC,验证通过 ODBC 访问 Mysql(相当于对服务器进行ODBC安装,同时测试客户端)

编辑 ODBC 配置文件 【3台服务器

vim /etc/odbc.ini
[mysql] 
Description = Data source MySQL 
Driver = MySQL ODBC 5.3 Unicode Driver 
Server = hadoop1                 【mysql服务器IP的hostname】
Host = hadoop1                   【mysql服务器IP的hostname】
Database = test                  【mysql数据库】 
Port = 3306                      【数据库端口】
User = root                      【mysql用户名】
Password = xxxxxx                【mysql密码】

测试链接                                                                                                          【3台服务器】

isql -v mysql

Doris1.1.1多种异构数据源数据导入方案

第三步、准备MYSQL 测试表和数据 

CREATE TABLE `test_cdc` ( 
`id` int NOT NULL AUTO_INCREMENT, 
`name` varchar(255) DEFAULT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=91234 DEFAULT CHARSET=utf8mb4; 

插入数据
INSERT INTO `test_cdc` VALUES (123, 'this is a update'); 
INSERT INTO `test_cdc` VALUES (1212, '测试 flink CDC'); 
INSERT INTO `test_cdc` VALUES (1234, '这是测试'); 
INSERT INTO `test_cdc` VALUES (11233, 'zhangfeng_1'); 
INSERT INTO `test_cdc` VALUES (21233, 'zhangfeng_2'); 
INSERT INTO `test_cdc` VALUES (31233, 'zhangfeng_3'); 
INSERT INTO `test_cdc` VALUES (41233, 'zhangfeng_4'); 
INSERT INTO `test_cdc` VALUES (51233, 'zhangfeng_5'); 
INSERT INTO `test_cdc` VALUES (61233, 'zhangfeng_6'); 
INSERT INTO `test_cdc` VALUES (71233, 'zhangfeng_7'); 
INSERT INTO `test_cdc` VALUES (81233, 'zhangfeng_8'); 
INSERT INTO `test_cdc` VALUES (91233, 'zhangfeng_9');

第四步:修改 Doris 的配置文件(每个 BE 节点都要,不用重启 BE)
在 BE 节点的 conf/odbcinst.ini,添加我们的刚才注册的的 ODBC 驱动([MySQL ODBC 
5.3.11]
红色这部分) 

 # Driver from the postgresql-odbc package

# Setup from the unixODBC package

[PostgreSQL]

Description = ODBC for PostgreSQL

Driver = /usr/lib/psqlodbc.so

Setup = /usr/lib/libodbcpsqlS.so

FileUsage = 1

# Driver from the mysql-connector-odbc package

# Setup from the unixODBC package

[MySQL ODBC 5.3.11] 【此处名称不允许修改写错 后面需要用到

Description = ODBC for MySQL

Driver= /usr/lib64/libmyodbc5w.so

FileUsage = 1

# Driver from the oracle-connector-odbc package

# Setup from the unixODBC package

[Oracle 19 ODBC driver]

Description=Oracle ODBC driver for Oracle 19

Driver=/usr/lib/libsqora.so.19.1

第五步:Doris 建 Resource表

通过 ODBC_Resource 来创建 ODBC 外表,这是推荐的方式,这样 resource 可以复用。

CREATE EXTERNAL RESOURCE `mysql_5_3_11`

PROPERTIES (

"host" = "hadoop1",                                             【mysql服务器IP的hostname】

"port" = "3306",                                                    【Mysql端口】

"user" = "root",                                                     【Mysql用户名

"password" = "XXXXX",                                       【Mysql密码】

"database" = "test",                                              Mysql数据库】

"table" = "test_cdc",                                              Mysql需要的外表

"driver" = "MySQL ODBC 5.3.11", 【名称要和上面[]里的名称一致,BE的配置文件头

"odbc_type" = "mysql",                                         【固定】

"type" = "odbc_catalog")                                       【固定】 

第六步:基于 Resource 创建 Doris 外表 

CREATE EXTERNAL TABLE `test_odbc` (

`id` int NOT NULL , 【和Mysql字段相同】

`name` varchar(255) null 【和Mysql字段相同】

) ENGINE=ODBC            【固定引擎

COMMENT "ODBC"

PROPERTIES (

"odbc_catalog_resource"="mysql_5_3_11",【名称就是 resource 的名称

"database" = "test", 【同步的数据库

"table" = "test_cdc"   【同步表】

);

Doris1.1.1多种异构数据源数据导入方案

第七步:查询数据 ,检查Mysql数据库完全相同

Doris1.1.1多种异构数据源数据导入方案

第八步:测试修改Mysql数据

Doris1.1.1多种异构数据源数据导入方案
修改Mysql 数据库 Doris 外表数据相同
Doris1.1.1多种异构数据源数据导入方案

备份说明:Doris 数据库同样支持Mysql的数据库文件备份命令,mysqldump

eg:/usr/local/mysql/bin/mysqldump -u用户名 -p密码 --databases 数据库  > /home/mysqlDataBak/$(date "+%Y%m%d%H")_jjga_mydb.sql文章来源地址https://www.toymoban.com/news/detail-434811.html

到了这里,关于Doris1.1.1多种异构数据源数据导入方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Apache Doris1.1.2(ES & MySQL)

    目录 Apache Doris 数据准备 MySQL Elastic Search Apache Doris 配置修改 FE BE

    2024年02月16日
    浏览(46)
  • springboot整合多数据源的配置以及动态切换数据源,注解切换数据源

    在许多应用程序中,可能需要使用多个数据库或数据源来处理不同的业务需求。Spring Boot提供了简便的方式来配置和使用多数据源,使开发人员能够轻松处理多个数据库连接。如果你的项目中可能需要随时切换数据源的话,那我这篇文章可能能帮助到你 ℹ️:这里对于pom文件

    2024年02月10日
    浏览(49)
  • NamedParameterJdbcTemplate多数据源指定数据源

    实战例子记录 pom config NamedParameterJdbcTemplate(动态sql调用)

    2024年02月08日
    浏览(50)
  • 数据源作用以及spring配置数据源

    数据源,简单理解为数据源头,提供了应用程序所需要数据的位置。数据源保证了应用程序与目标数据之间交互的规范和协议,它可以是数据库,文件系统等等。其中数据源定义了位置信息,用户验证信息和交互时所需的一些特性的配置,同时它封装了如何建立与数据源的连

    2024年02月07日
    浏览(53)
  • SpringBoot——动态数据源(多数据源自动切换)

    日常的业务开发项目中只会配置一套数据源,如果需要获取其他系统的数据往往是通过调用接口, 或者是通过第三方工具比如kettle将数据同步到自己的数据库中进行访问。 但是也会有需要在项目中引用多数据源的场景。比如如下场景: 自研数据迁移系统,至少需要新、老两

    2024年02月16日
    浏览(39)
  • SpringBoot从数据库读取数据数据源配置信息,动态切换数据源

            首先准备多个数据库,主库smiling-datasource,其它库test1、test2、test3         接下来,我们在主库smiling-datasource中,创建表databasesource,用于存储多数据源相关信息。表结构设计如下         创建好表之后,向表databasesource中存储test1、test2、test3三个数据库的相关配置

    2024年01月16日
    浏览(64)
  • 【Spring Boot 3】【数据源】自定义多数据源

    软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时

    2024年02月01日
    浏览(60)
  • 【Spring Boot 3】【数据源】自定义JPA数据源

    软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时

    2024年01月21日
    浏览(70)
  • 【Spring Boot 3】【数据源】自定义JDBC多数据源

    软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时

    2024年01月23日
    浏览(49)
  • 【Spring Boot 3】【数据源】自定义JPA多数据源

    软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时

    2024年01月22日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包