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 jun su <su...@gmail.com> on 2020/03/17 03:52:01 UTC

读取ORC文件的VectorizedRowBatch的最佳batchSize设置建议

hi all:
     在向量化读取orc文件时, 需要配置VectorizedRowBatch的batchSize, 用于设置每次读取的行数,
我知道根据orc索引, 读取orc文件最小的单位应该是row group(默认1w行), 底层会根据filter条件来精确到哪些row group,
那之前提到的batchSize设置为1000时 , 那一个row group需要读取10次, 每个row group又是按列存储,
势必会存在非连续读取的可能, 这样岂不是做不到最大优化? 是够将batchSize设置和row group配置一样才能读取效率最大化呢?
不知道我的理解是否正确.

Re: 读取ORC文件的VectorizedRowBatch的最佳batchSize设置建议

Posted by Jingsong Li <ji...@gmail.com>.
Hi,

1.10没有convert成Row,只是提供一个row的view;之前是convert成Row,这个差别对性能影响很大。

Best,
Jingsong Lee

On Tue, Mar 17, 2020 at 3:31 PM jun su <su...@gmail.com> wrote:

> hi Jingsong Li,
>
> 感谢回复,理解了你的意思.
> 这个问题是我在看flink-1.10有关orc的代码时发现的 , 我注意到flink-1.10的release notes中有提到:
> 向量化读取ORC. 但是我对比老版本的代码, 一直是采用VectorizedRowBatch的方式,
> flink-1.10只是对不同版本的hive做了适配, 我也看到有关代码也是你的pull request, 不知道是否是这样?
>
> Jingsong Li <ji...@gmail.com> 于2020年3月17日周二 下午12:04写道:
>
> > Hi,
> >
> > 1万行太大了,会占用太大内存。而且batchSize太大也不利于cache。
> > batchSize不一定要和row group一样,这种row group特别大的情况下,batchSize 够用就行了。
> >
> > Best,
> > Jingsong Lee
> >
> > On Tue, Mar 17, 2020 at 11:52 AM jun su <su...@gmail.com> wrote:
> >
> > > hi all:
> > >      在向量化读取orc文件时, 需要配置VectorizedRowBatch的batchSize, 用于设置每次读取的行数,
> > > 我知道根据orc索引, 读取orc文件最小的单位应该是row group(默认1w行), 底层会根据filter条件来精确到哪些row
> > group,
> > > 那之前提到的batchSize设置为1000时 , 那一个row group需要读取10次, 每个row group又是按列存储,
> > > 势必会存在非连续读取的可能, 这样岂不是做不到最大优化? 是够将batchSize设置和row group配置一样才能读取效率最大化呢?
> > > 不知道我的理解是否正确.
> > >
> >
> >
> > --
> > Best, Jingsong Lee
> >
>
>
> --
> Best,
> Jun Su
>


-- 
Best, Jingsong Lee

Re: 读取ORC文件的VectorizedRowBatch的最佳batchSize设置建议

Posted by jun su <su...@gmail.com>.
hi Jingsong Li,

感谢回复,理解了你的意思.
这个问题是我在看flink-1.10有关orc的代码时发现的 , 我注意到flink-1.10的release notes中有提到:
向量化读取ORC. 但是我对比老版本的代码, 一直是采用VectorizedRowBatch的方式,
flink-1.10只是对不同版本的hive做了适配, 我也看到有关代码也是你的pull request, 不知道是否是这样?

Jingsong Li <ji...@gmail.com> 于2020年3月17日周二 下午12:04写道:

> Hi,
>
> 1万行太大了,会占用太大内存。而且batchSize太大也不利于cache。
> batchSize不一定要和row group一样,这种row group特别大的情况下,batchSize 够用就行了。
>
> Best,
> Jingsong Lee
>
> On Tue, Mar 17, 2020 at 11:52 AM jun su <su...@gmail.com> wrote:
>
> > hi all:
> >      在向量化读取orc文件时, 需要配置VectorizedRowBatch的batchSize, 用于设置每次读取的行数,
> > 我知道根据orc索引, 读取orc文件最小的单位应该是row group(默认1w行), 底层会根据filter条件来精确到哪些row
> group,
> > 那之前提到的batchSize设置为1000时 , 那一个row group需要读取10次, 每个row group又是按列存储,
> > 势必会存在非连续读取的可能, 这样岂不是做不到最大优化? 是够将batchSize设置和row group配置一样才能读取效率最大化呢?
> > 不知道我的理解是否正确.
> >
>
>
> --
> Best, Jingsong Lee
>


-- 
Best,
Jun Su

Re: 读取ORC文件的VectorizedRowBatch的最佳batchSize设置建议

Posted by Jingsong Li <ji...@gmail.com>.
Hi,

1万行太大了,会占用太大内存。而且batchSize太大也不利于cache。
batchSize不一定要和row group一样,这种row group特别大的情况下,batchSize 够用就行了。

Best,
Jingsong Lee

On Tue, Mar 17, 2020 at 11:52 AM jun su <su...@gmail.com> wrote:

> hi all:
>      在向量化读取orc文件时, 需要配置VectorizedRowBatch的batchSize, 用于设置每次读取的行数,
> 我知道根据orc索引, 读取orc文件最小的单位应该是row group(默认1w行), 底层会根据filter条件来精确到哪些row group,
> 那之前提到的batchSize设置为1000时 , 那一个row group需要读取10次, 每个row group又是按列存储,
> 势必会存在非连续读取的可能, 这样岂不是做不到最大优化? 是够将batchSize设置和row group配置一样才能读取效率最大化呢?
> 不知道我的理解是否正确.
>


-- 
Best, Jingsong Lee