You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 陈帅 <ca...@gmail.com> on 2019/12/08 02:04:14 UTC
Flink实时数仓落Hive一般用哪种方式好?
有人说直接写到HBase,再在Hive关联Hbase表
但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
写的话,目前来看没有现成的Streaming
Writer,官方提供的都是
BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
业务上的Update和Delete操作 数据一般是如何sync进Hive的?
2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
回复: Flink实时数仓落Hive一般用哪种方式好?
Posted by hiliuxg <73...@qq.com>.
https://github.com/hiliuxg/flink-orc-sink 这个项目能写hdfs orc,并保证exectly once
------------------ 原始邮件 ------------------
发件人: "jingwen jingwen"<jingwen.ywb@gmail.com>;
发送时间: 2019年12月10日(星期二) 中午11:12
收件人: "user-zh"<user-zh@flink.apache.org>;
主题: Re: Flink实时数仓落Hive一般用哪种方式好?
hbase具备很好的支持随机,实时读取/写入的性能支持,同流计算引擎结合是一个比较好的选择
实时计算直接hdfs,会存在很多性能问题
陈帅 <casel.chen@gmail.com> 于2019年12月10日周二 上午8:21写道:
> 1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢?
> 2. BulkWriter是不是攒微批写文件的?
>
> JingsongLee <lzljs3620320@aliyun.com.invalid> 于2019年12月9日周一 下午3:24写道:
>
> > Hi 帅,
> > - 目前可以通过改写StreamingFileSink的方式来支持Parquet。
> > (但是目前StreamingFileSink支持ORC比较难)
> > - BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。
> > - 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。
> >
> > 在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]
> >
> > [1] https://issues.apache.org/jira/browse/FLINK-14249
> >
> > Best,
> > Jingsong Lee
> >
> >
> > ------------------------------------------------------------------
> > From:陈帅 <casel.chen@gmail.com>
> > Send Time:2019年12月8日(星期日) 10:04
> > To:user-zh@flink.apache.org <user-zh@flink.apache.org>
> > Subject:Flink实时数仓落Hive一般用哪种方式好?
> >
> > 有人说直接写到HBase,再在Hive关联Hbase表
> > 但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
> >
> > 1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
> > 写的话,目前来看没有现成的Streaming
> > Writer,官方提供的都是
> > BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
> > 业务上的Update和Delete操作 数据一般是如何sync进Hive的?
> >
> > 2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
> >
>
Re: Flink实时数仓落Hive一般用哪种方式好?
Posted by jingwen jingwen <ji...@gmail.com>.
hbase具备很好的支持随机,实时读取/写入的性能支持,同流计算引擎结合是一个比较好的选择
实时计算直接hdfs,会存在很多性能问题
陈帅 <ca...@gmail.com> 于2019年12月10日周二 上午8:21写道:
> 1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢?
> 2. BulkWriter是不是攒微批写文件的?
>
> JingsongLee <lz...@aliyun.com.invalid> 于2019年12月9日周一 下午3:24写道:
>
> > Hi 帅,
> > - 目前可以通过改写StreamingFileSink的方式来支持Parquet。
> > (但是目前StreamingFileSink支持ORC比较难)
> > - BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。
> > - 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。
> >
> > 在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]
> >
> > [1] https://issues.apache.org/jira/browse/FLINK-14249
> >
> > Best,
> > Jingsong Lee
> >
> >
> > ------------------------------------------------------------------
> > From:陈帅 <ca...@gmail.com>
> > Send Time:2019年12月8日(星期日) 10:04
> > To:user-zh@flink.apache.org <us...@flink.apache.org>
> > Subject:Flink实时数仓落Hive一般用哪种方式好?
> >
> > 有人说直接写到HBase,再在Hive关联Hbase表
> > 但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
> >
> > 1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
> > 写的话,目前来看没有现成的Streaming
> > Writer,官方提供的都是
> > BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
> > 业务上的Update和Delete操作 数据一般是如何sync进Hive的?
> >
> > 2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
> >
>
Re: Re: Flink实时数仓落Hive一般用哪种方式好?
Posted by JingsongLee <lz...@aliyun.com.INVALID>.
Hi hjxhainan,
如果你要取消订阅。
请发送邮件到user-zh-unsubscribe@flink.apache.org
Best,
Jingsong Lee
------------------------------------------------------------------
From:hjxhainan@163.com <hj...@163.com>
Send Time:2019年12月10日(星期二) 10:52
To:user-zh <us...@flink.apache.org>; JingsongLee <lz...@aliyun.com>; 陈帅 <ca...@gmail.com>
Subject:Re: Re: Flink实时数仓落Hive一般用哪种方式好?
怎么退出邮件订阅
hjxhainan@163.com
发件人: JingsongLee
发送时间: 2019-12-10 10:48
收件人: 陈帅; user-zh@flink.apache.org
主题: Re: Flink实时数仓落Hive一般用哪种方式好?
Hi 陈帅,
1.BulkWriter.Factory接口不适合ORC, 正如yue ma所说,你需要一些改动
2.StreamingFileSink整个机制都是基于做checkpoint才会真正move文件的,不知道你所想的streaming写是什么,以及对你的业务场景有什么要求吗?
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月10日(星期二) 08:21
To:user-zh@flink.apache.org <us...@flink.apache.org>; JingsongLee <lz...@aliyun.com>
Subject:Re: Flink实时数仓落Hive一般用哪种方式好?
1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢?
2. BulkWriter是不是攒微批写文件的?
JingsongLee <lz...@aliyun.com.invalid> 于2019年12月9日周一 下午3:24写道:
Hi 帅,
- 目前可以通过改写StreamingFileSink的方式来支持Parquet。
(但是目前StreamingFileSink支持ORC比较难)
- BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。
- 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。
在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]
[1] https://issues.apache.org/jira/browse/FLINK-14249
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月8日(星期日) 10:04
To:user-zh@flink.apache.org <us...@flink.apache.org>
Subject:Flink实时数仓落Hive一般用哪种方式好?
有人说直接写到HBase,再在Hive关联Hbase表
但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
写的话,目前来看没有现成的Streaming
Writer,官方提供的都是
BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
业务上的Update和Delete操作 数据一般是如何sync进Hive的?
2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
Re: Re: Flink实时数仓落Hive一般用哪种方式好?
Posted by "hjxhainan@163.com" <hj...@163.com>.
怎么退出邮件订阅
hjxhainan@163.com
发件人: JingsongLee
发送时间: 2019-12-10 10:48
收件人: 陈帅; user-zh@flink.apache.org
主题: Re: Flink实时数仓落Hive一般用哪种方式好?
Hi 陈帅,
1.BulkWriter.Factory接口不适合ORC, 正如yue ma所说,你需要一些改动
2.StreamingFileSink整个机制都是基于做checkpoint才会真正move文件的,不知道你所想的streaming写是什么,以及对你的业务场景有什么要求吗?
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月10日(星期二) 08:21
To:user-zh@flink.apache.org <us...@flink.apache.org>; JingsongLee <lz...@aliyun.com>
Subject:Re: Flink实时数仓落Hive一般用哪种方式好?
1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢?
2. BulkWriter是不是攒微批写文件的?
JingsongLee <lz...@aliyun.com.invalid> 于2019年12月9日周一 下午3:24写道:
Hi 帅,
- 目前可以通过改写StreamingFileSink的方式来支持Parquet。
(但是目前StreamingFileSink支持ORC比较难)
- BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。
- 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。
在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]
[1] https://issues.apache.org/jira/browse/FLINK-14249
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月8日(星期日) 10:04
To:user-zh@flink.apache.org <us...@flink.apache.org>
Subject:Flink实时数仓落Hive一般用哪种方式好?
有人说直接写到HBase,再在Hive关联Hbase表
但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
写的话,目前来看没有现成的Streaming
Writer,官方提供的都是
BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
业务上的Update和Delete操作 数据一般是如何sync进Hive的?
2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
Re: Flink实时数仓落Hive一般用哪种方式好?
Posted by JingsongLee <lz...@aliyun.com.INVALID>.
实时性取决于checkpoint时间间隔。
Flink这边的sink没有合并小文件的功能。
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月10日(星期二) 21:45
To:JingsongLee <lz...@aliyun.com>
Subject:Re: Flink实时数仓落Hive一般用哪种方式好?
我想要的streaming写就是数据实时写入HDFS文件,场景有实时数据仓库等。需要平衡实时性以及小文件过多的问题。目前处理小文件问题的方法都是在事后合并文件吗?
JingsongLee <lz...@aliyun.com> 于2019年12月10日周二 上午10:48写道:
Hi 陈帅,
1.BulkWriter.Factory接口不适合ORC, 正如yue ma所说,你需要一些改动
2.StreamingFileSink整个机制都是基于做checkpoint才会真正move文件的,不知道你所想的streaming写是什么,以及对你的业务场景有什么要求吗?
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月10日(星期二) 08:21
To:user-zh@flink.apache.org <us...@flink.apache.org>; JingsongLee <lz...@aliyun.com>
Subject:Re: Flink实时数仓落Hive一般用哪种方式好?
1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢?
2. BulkWriter是不是攒微批写文件的?
JingsongLee <lz...@aliyun.com.invalid> 于2019年12月9日周一 下午3:24写道:
Hi 帅,
- 目前可以通过改写StreamingFileSink的方式来支持Parquet。
(但是目前StreamingFileSink支持ORC比较难)
- BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。
- 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。
在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]
[1] https://issues.apache.org/jira/browse/FLINK-14249
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月8日(星期日) 10:04
To:user-zh@flink.apache.org <us...@flink.apache.org>
Subject:Flink实时数仓落Hive一般用哪种方式好?
有人说直接写到HBase,再在Hive关联Hbase表
但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
写的话,目前来看没有现成的Streaming
Writer,官方提供的都是
BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
业务上的Update和Delete操作 数据一般是如何sync进Hive的?
2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
Re: Flink实时数仓落Hive一般用哪种方式好?
Posted by JingsongLee <lz...@aliyun.com.INVALID>.
Hi 陈帅,
1.BulkWriter.Factory接口不适合ORC, 正如yue ma所说,你需要一些改动
2.StreamingFileSink整个机制都是基于做checkpoint才会真正move文件的,不知道你所想的streaming写是什么,以及对你的业务场景有什么要求吗?
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月10日(星期二) 08:21
To:user-zh@flink.apache.org <us...@flink.apache.org>; JingsongLee <lz...@aliyun.com>
Subject:Re: Flink实时数仓落Hive一般用哪种方式好?
1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢?
2. BulkWriter是不是攒微批写文件的?
JingsongLee <lz...@aliyun.com.invalid> 于2019年12月9日周一 下午3:24写道:
Hi 帅,
- 目前可以通过改写StreamingFileSink的方式来支持Parquet。
(但是目前StreamingFileSink支持ORC比较难)
- BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。
- 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。
在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]
[1] https://issues.apache.org/jira/browse/FLINK-14249
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月8日(星期日) 10:04
To:user-zh@flink.apache.org <us...@flink.apache.org>
Subject:Flink实时数仓落Hive一般用哪种方式好?
有人说直接写到HBase,再在Hive关联Hbase表
但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
写的话,目前来看没有现成的Streaming
Writer,官方提供的都是
BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
业务上的Update和Delete操作 数据一般是如何sync进Hive的?
2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
Re: Flink实时数仓落Hive一般用哪种方式好?
Posted by 陈帅 <ca...@gmail.com>.
1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢?
2. BulkWriter是不是攒微批写文件的?
JingsongLee <lz...@aliyun.com.invalid> 于2019年12月9日周一 下午3:24写道:
> Hi 帅,
> - 目前可以通过改写StreamingFileSink的方式来支持Parquet。
> (但是目前StreamingFileSink支持ORC比较难)
> - BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。
> - 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。
>
> 在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]
>
> [1] https://issues.apache.org/jira/browse/FLINK-14249
>
> Best,
> Jingsong Lee
>
>
> ------------------------------------------------------------------
> From:陈帅 <ca...@gmail.com>
> Send Time:2019年12月8日(星期日) 10:04
> To:user-zh@flink.apache.org <us...@flink.apache.org>
> Subject:Flink实时数仓落Hive一般用哪种方式好?
>
> 有人说直接写到HBase,再在Hive关联Hbase表
> 但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
>
> 1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
> 写的话,目前来看没有现成的Streaming
> Writer,官方提供的都是
> BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
> 业务上的Update和Delete操作 数据一般是如何sync进Hive的?
>
> 2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
>
Re: Flink实时数仓落Hive一般用哪种方式好?
Posted by JingsongLee <lz...@aliyun.com.INVALID>.
Hi 帅,
- 目前可以通过改写StreamingFileSink的方式来支持Parquet。
(但是目前StreamingFileSink支持ORC比较难)
- BulkWriter和批处理没有关系,它只是StreamingFileSink的一种概念。
- 如果sync hive分区,这需要自定义了,目前StreamingFileSink没有现成的。
在1.11中,Table层会持续深入这方面的处理,实时数仓落hive,在后续会一一解决数据倾斜、分区可见性等问题。[1]
[1] https://issues.apache.org/jira/browse/FLINK-14249
Best,
Jingsong Lee
------------------------------------------------------------------
From:陈帅 <ca...@gmail.com>
Send Time:2019年12月8日(星期日) 10:04
To:user-zh@flink.apache.org <us...@flink.apache.org>
Subject:Flink实时数仓落Hive一般用哪种方式好?
有人说直接写到HBase,再在Hive关联Hbase表
但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
写的话,目前来看没有现成的Streaming
Writer,官方提供的都是
BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
业务上的Update和Delete操作 数据一般是如何sync进Hive的?
2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
Re: Flink实时数仓落Hive一般用哪种方式好?
Posted by yue ma <ma...@gmail.com>.
可以用改写StreamingfileSink的方式去直接写orc文件
不过这种方式的分区需要手动添加
陈帅 <ca...@gmail.com> 于2019年12月8日周日 上午10:04写道:
> 有人说直接写到HBase,再在Hive关联Hbase表
> 但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白:
>
> 1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC)
> 写的话,目前来看没有现成的Streaming
> Writer,官方提供的都是
> BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于
> 业务上的Update和Delete操作 数据一般是如何sync进Hive的?
>
> 2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗?
>