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

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

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

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

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

Jingsong Li
Hi,

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

Best,
Jingsong Lee

On Tue, Mar 17, 2020 at 11:52 AM jun su <[hidden email]> 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
Reply | Threaded
Open this post in threaded view
|

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

jun su
hi Jingsong Li,

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

Jingsong Li <[hidden email]> 于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 <[hidden email]> 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
Reply | Threaded
Open this post in threaded view
|

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

Jingsong Li
Hi,

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

Best,
Jingsong Lee

On Tue, Mar 17, 2020 at 3:31 PM jun su <[hidden email]> wrote:

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