有人说直接写到HBase,再在Hive关联Hbase表
但是我想直接写文件到HDFS,再通过Hive外表加载,不过有几个问题不明白: 1. 如果用行式格式实时写没有问题,StreamingFileSink也支持,但是如果我想用列式格式(如Parquet或ORC) 写的话,目前来看没有现成的Streaming Writer,官方提供的都是 BulkWriter,只支持批处理方式。是不是不建议用列式格式进行流式写?如果能的话需要自己定义StreamingWriter吗?对于 业务上的Update和Delete操作 数据一般是如何sync进Hive的? 2. 写入HDFS文件后,要怎么让Hive自动发现新加的分区?能在Flink ETL程序中一并完成吗? |
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:陈帅 <[hidden email]> Send Time:2019年12月8日(星期日) 10:04 To:[hidden email] <[hidden email]> 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程序中一并完成吗? |
In reply to this post by 陈帅
可以用改写StreamingfileSink的方式去直接写orc文件
不过这种方式的分区需要手动添加 陈帅 <[hidden email]> 于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程序中一并完成吗? > |
In reply to this post by JingsongLee
1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢?
2. BulkWriter是不是攒微批写文件的? JingsongLee <[hidden email]> 于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:陈帅 <[hidden email]> > Send Time:2019年12月8日(星期日) 10:04 > To:[hidden email] <[hidden email]> > 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程序中一并完成吗? > |
Hi 陈帅,
1.BulkWriter.Factory接口不适合ORC, 正如yue ma所说,你需要一些改动 2.StreamingFileSink整个机制都是基于做checkpoint才会真正move文件的,不知道你所想的streaming写是什么,以及对你的业务场景有什么要求吗? Best, Jingsong Lee ------------------------------------------------------------------ From:陈帅 <[hidden email]> Send Time:2019年12月10日(星期二) 08:21 To:[hidden email] <[hidden email]>; JingsongLee <[hidden email]> Subject:Re: Flink实时数仓落Hive一般用哪种方式好? 1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢? 2. BulkWriter是不是攒微批写文件的? JingsongLee <[hidden email]> 于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:陈帅 <[hidden email]> Send Time:2019年12月8日(星期日) 10:04 To:[hidden email] <[hidden email]> 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程序中一并完成吗? |
怎么退出邮件订阅
[hidden email] 发件人: JingsongLee 发送时间: 2019-12-10 10:48 收件人: 陈帅; [hidden email] 主题: Re: Flink实时数仓落Hive一般用哪种方式好? Hi 陈帅, 1.BulkWriter.Factory接口不适合ORC, 正如yue ma所说,你需要一些改动 2.StreamingFileSink整个机制都是基于做checkpoint才会真正move文件的,不知道你所想的streaming写是什么,以及对你的业务场景有什么要求吗? Best, Jingsong Lee ------------------------------------------------------------------ From:陈帅 <[hidden email]> Send Time:2019年12月10日(星期二) 08:21 To:[hidden email] <[hidden email]>; JingsongLee <[hidden email]> Subject:Re: Flink实时数仓落Hive一般用哪种方式好? 1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢? 2. BulkWriter是不是攒微批写文件的? JingsongLee <[hidden email]> 于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:陈帅 <[hidden email]> Send Time:2019年12月8日(星期日) 10:04 To:[hidden email] <[hidden email]> 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程序中一并完成吗? |
In reply to this post by 陈帅
hbase具备很好的支持随机,实时读取/写入的性能支持,同流计算引擎结合是一个比较好的选择
实时计算直接hdfs,会存在很多性能问题 陈帅 <[hidden email]> 于2019年12月10日周二 上午8:21写道: > 1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢? > 2. BulkWriter是不是攒微批写文件的? > > JingsongLee <[hidden email]> 于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:陈帅 <[hidden email]> > > Send Time:2019年12月8日(星期日) 10:04 > > To:[hidden email] <[hidden email]> > > 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程序中一并完成吗? > > > |
https://github.com/hiliuxg/flink-orc-sink 这个项目能写hdfs orc,并保证exectly once
------------------ 原始邮件 ------------------ 发件人: "jingwen jingwen"<[hidden email]>; 发送时间: 2019年12月10日(星期二) 中午11:12 收件人: "user-zh"<[hidden email]>; 主题: Re: Flink实时数仓落Hive一般用哪种方式好? hbase具备很好的支持随机,实时读取/写入的性能支持,同流计算引擎结合是一个比较好的选择 实时计算直接hdfs,会存在很多性能问题 陈帅 <[hidden email]> 于2019年12月10日周二 上午8:21写道: > 1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢? > 2. BulkWriter是不是攒微批写文件的? > > JingsongLee <[hidden email]> 于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:陈帅 <[hidden email]> > > Send Time:2019年12月8日(星期日) 10:04 > > To:[hidden email] <[hidden email]> > > 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程序中一并完成吗? > > > |
In reply to this post by hjxhainan@163.com
Hi hjxhainan,
如果你要取消订阅。 请发送邮件到user-[hidden email] Best, Jingsong Lee ------------------------------------------------------------------ From:[hidden email] <[hidden email]> Send Time:2019年12月10日(星期二) 10:52 To:user-zh <[hidden email]>; JingsongLee <[hidden email]>; 陈帅 <[hidden email]> Subject:Re: Re: Flink实时数仓落Hive一般用哪种方式好? 怎么退出邮件订阅 [hidden email] 发件人: JingsongLee 发送时间: 2019-12-10 10:48 收件人: 陈帅; [hidden email] 主题: Re: Flink实时数仓落Hive一般用哪种方式好? Hi 陈帅, 1.BulkWriter.Factory接口不适合ORC, 正如yue ma所说,你需要一些改动 2.StreamingFileSink整个机制都是基于做checkpoint才会真正move文件的,不知道你所想的streaming写是什么,以及对你的业务场景有什么要求吗? Best, Jingsong Lee ------------------------------------------------------------------ From:陈帅 <[hidden email]> Send Time:2019年12月10日(星期二) 08:21 To:[hidden email] <[hidden email]>; JingsongLee <[hidden email]> Subject:Re: Flink实时数仓落Hive一般用哪种方式好? 1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢? 2. BulkWriter是不是攒微批写文件的? JingsongLee <[hidden email]> 于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:陈帅 <[hidden email]> Send Time:2019年12月8日(星期日) 10:04 To:[hidden email] <[hidden email]> 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程序中一并完成吗? |
In reply to this post by JingsongLee
实时性取决于checkpoint时间间隔。
Flink这边的sink没有合并小文件的功能。 Best, Jingsong Lee ------------------------------------------------------------------ From:陈帅 <[hidden email]> Send Time:2019年12月10日(星期二) 21:45 To:JingsongLee <[hidden email]> Subject:Re: Flink实时数仓落Hive一般用哪种方式好? 我想要的streaming写就是数据实时写入HDFS文件,场景有实时数据仓库等。需要平衡实时性以及小文件过多的问题。目前处理小文件问题的方法都是在事后合并文件吗? JingsongLee <[hidden email]> 于2019年12月10日周二 上午10:48写道: Hi 陈帅, 1.BulkWriter.Factory接口不适合ORC, 正如yue ma所说,你需要一些改动 2.StreamingFileSink整个机制都是基于做checkpoint才会真正move文件的,不知道你所想的streaming写是什么,以及对你的业务场景有什么要求吗? Best, Jingsong Lee ------------------------------------------------------------------ From:陈帅 <[hidden email]> Send Time:2019年12月10日(星期二) 08:21 To:[hidden email] <[hidden email]>; JingsongLee <[hidden email]> Subject:Re: Flink实时数仓落Hive一般用哪种方式好? 1. 相比Parquet,目前StreamingFileSink支持ORC的难点在哪里呢? 2. BulkWriter是不是攒微批写文件的? JingsongLee <[hidden email]> 于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:陈帅 <[hidden email]> Send Time:2019年12月8日(星期日) 10:04 To:[hidden email] <[hidden email]> 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程序中一并完成吗? |
Free forum by Nabble | Edit this page |