doris通过外部表同步数据

一、doris 1.2.5版本支持

参考:https://pn7oj6yotr.feishu.cn/docx/CUfldzlYqo8nyDxHyrzc1fZGnVg 4.4小节

Doris 可以创建外部表。创建完成后,可以通过 SELECT 语句直接查询外部表的数据,也可以通过 INSERT INTO SELECT 的方式导入外部表的数据。

Doris 外部表目前支持的数据源包括:MySQL,Oracle,Hive,PostgreSQL,SQLServer,Iceberg,ElasticSearch

4.4.1 整体语法

复制代码
CREATE [EXTERNAL] TABLE table_name ( 
 col_name col_type [NULL | NOT NULL] [COMMENT "comment"] 
) ENGINE=HIVE
[COMMENT "comment"] 
PROPERTIES ( 
-- 我要映射的hive表在哪个库里面
-- 映射的表名是哪一张
-- hive的元数据服务地址
 'property_name'='property_value', 
 ... 
); 
复制代码

4.4.2 使用示例

完成在 Doris 中建立 Hive 外表后,除了无法使用 Doris 中的数据模型(rollup、预聚合、物化视图等)外,与普通的 Doris OLAP 表并无区别

在Hive 中创建一个测试用表:

复制代码
CREATE TABLE `hive_doris` ( 
 `id` int, 
 `name` string, 
 `age` int
) stored as orc;

insert into doris_table values (1,'zss',18);
insert into doris_table values (2,'lss',20);
insert into doris_table values (3,'ww',25);

Doris 中创建外部表

复制代码
CREATE EXTERNAL TABLE `hive_user_info` ( 
 `id` int, 
 `name` varchar(10), 
 `age` int 
) ENGINE=HIVE 
PROPERTIES ( 
'hive.metastore.uris' = 'thrift://linux01:9083', 
'database' = 'test', 
'table' = 'hive_doris' 
);
  • 直接 查询 外部

外部表创建好后,就可以直接在doris中对这个外部表进行查询了

直接查询外部表,无法利用到doris自身的各种查询优化机制!

复制代码
select * from hive_user_info;
复制代码
  • 将数据从外部表导入内部表
复制代码

数据从外部表导入内部表后,就可以利用doris自身的查询优势了!

假设要导入的目标内部表为: doris_user_info (需要提前创建好哦!!)

复制代码
复制代码
CREATE TABLE IF NOT EXISTS doris_user_info
(
    id INT,
    name VARCHAR(50),
    age TINYINT
)
unique key(id)
DISTRIBUTED BY HASH(id) BUCKETS 3;

-- 就是用sql查询,从外部表中select出数据后,insert到内部表即可
insert into doris_user_info
select
 *
from hive_user_info;
复制代码

注意:

Hive 表 Schema 变更不会自动同步,需要在 Doris 中重建 Hive 外表。

当前 Hive 的存储格式仅支持 Text,Parquet 和 ORC 类型

二、doris 2.1.7 不支持hive外部表

调研过程:

1、使用agc用户,进入hive , use default;建表,插入数据

复制代码
  2、doris中创建外部表
相关推荐
todoitbo2 小时前
从大数据角度看时序数据库选型:Apache IoTDB的实战经验分享
大数据·apache·时序数据库·iotdb
大数据CLUB3 小时前
酒店预订数据分析及预测可视化
大数据·hadoop·分布式·数据挖掘·数据分析·spark·mapreduce
huisheng_qaq4 小时前
【ElasticSearch实用篇-05】基于脚本script打分
大数据·elasticsearch·script·匹配·社交·脚本打分
夜郎king4 小时前
MapTalks:国产轻量化二三维一体化GIS引擎
大数据·国产二三维引擎·maptalks引擎
青鱼入云5 小时前
ES脚本语言Painless介绍
大数据·elasticsearch·搜索引擎
Jonathan Star6 小时前
嵌套 Git 仓库(Submodule/子模块)
大数据·git·elasticsearch
TDengine (老段)7 小时前
从“数据堆场”到“智能底座”:TDengine IDMP如何统一数据语言
大数据·数据库·物联网·时序数据库·tdengine
liuyunshengsir8 小时前
让 Elasticsearch Delete By Query 请求立即生效
大数据·elasticsearch·jenkins
武子康8 小时前
大数据-148 Flink 写入 Kudu 实战:自定义 Sink 全流程(Flink 1.11/Kudu 1.17/Java 11)
大数据·后端·nosql