您现在的位置是:首页 > 文章详情

今天聊聊怎么给表写入数据

日期:2019-12-19点击:446

上期给大家将了,如何在交互式分析中高效建表,并构建表索引以及给表设置属性,以期在同等资源情况下,能更快的查询到表数据。往期精彩传送门:今天来聊聊怎么高效建表。今天小编就来为大家讲讲如何把数据写入进表里。

当前版本的交互式分析支持的数据写入来源有:MaxCompute、实时计算(Flink)以及交互式分析这3种,当前交互式分析支持insert into select 和insert into vaues两种标准的PG表达方式,可以写入部分字段,也可以写入全部字段,下面就以分区表和非分区表两种场景来将,如何将数据写入表中。

场景1:将数据写进非分区表中

1.建一张非分区表

CREATE TABLE holo_test ( id int8 NOT NULL, age int8, name text, born timestamptz, class text, tel text, PRIMARY KEY (id) ); CALL SET_TABLE_PROPERTY('holo_test', 'orientation', 'column'); 

2.两种方式导入数据

//方式1: INSERT INTO holo_test VALUES (1, 25, 'Tom', '1993-07-02', 'mid', '0253-889902'), (2, 22, 'Dad', '1994-09-12', 'hig', '0222-555222'), (3, 24, 'www', '1995-09-15', 'mid', '0232-5445292'), (4, 23, 'Lily', '1996-02-17', 'hig', '0234-8745209'); //方式2: INSERT INTO holo_test SELECT 5, 23, 'neal', '1994-05-13', 'hig', '0154-8778209';

若是直接从MaxCompute 中导入数据,还可以使用以下语句

insert into table1 select * from table2; //全部字段导入 insert into table1 select id, name from table2;//导入部分字段数据

说明:两种insert的方式,在性能上,若是大量数据,insert into values可能写入的比较麻烦,insert into select可以直接将数据从另一个表中写入,较简单,性能表现也会更快。

场景2:将数据写入分区表中

当一张表数据很大时,通常会用到分区,在交互式分析中也支持分区表,关于分区表的创建可以参考文档:管理和创建分区表。
1.新建一张分区表

CREATE TABLE par_holo ( id int8, name text, ds text ) PARTITION BY LIST (ds); CALL SET_TABLE_PROPERTY('par_holo', 'orientation', 'column');

2.新建一张分区子表

CREATE TABLE par_holo_1 PARTITION of par_holo FOR VALUES in ('ds');

3.将数据写入进分区子表

//方式1 INSERT INTO par_holo_1 VALUES (1,'a','ds'); INSERT INTO par_holo_1 SELECT 2,'b','ds';

关于MaxCompute数据导入至交互式分析中可以参见文档:MaxCompute导入查询
或者往期精彩:来了,2行代码秒级查询MaxCompute!
但看完本文的朋友们可能会又疑问,要是导本地文件,或者这么负责的写法,数据量大的时候怎么办,偷偷告诉大家,别担心,下期给大家讲解如何使用copy。
关于在使用交互式分析中有任何问题,请进钉钉群交流
image.png

原文链接:https://yq.aliyun.com/articles/740039
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章