You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@crunch.apache.org by "Micah Whitacre (JIRA)" <ji...@apache.org> on 2014/01/31 17:30:10 UTC
[jira] [Commented] (CRUNCH-336) Optimized filters and joins via
Parquet RecordFilters
[ https://issues.apache.org/jira/browse/CRUNCH-336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13887884#comment-13887884 ]
Micah Whitacre commented on CRUNCH-336:
---------------------------------------
CRUNCH-299 was logged to track something similar to "item 1" but by interpreting a FilterFn as a RecordFilter. I'm leaning to agree with [~jwills] and [~gabriel.reid] that we should just expose those options at source creation.
> Optimized filters and joins via Parquet RecordFilters
> -----------------------------------------------------
>
> Key: CRUNCH-336
> URL: https://issues.apache.org/jira/browse/CRUNCH-336
> Project: Crunch
> Issue Type: Improvement
> Reporter: Ryan Brush
>
> Logging this to track some ideas from an offline discussion with [~jwills] and [~mkwhitacre]. There's an opportunity to significantly speed up a couple access patterns:
> 1. Process only a subset of data from a Parquet file identified by a single column
> 2. Perform a bloom filter join between two datasets, where the joined item is a Parquet column in the larger data set.
> Optimizing item 1 simply involves using a RecordFilter to narrow down the data loaded from the AvroParquetInputFormat.
> Optimizing item 2 is more involved. In a nutshell, we discussed doing a bloom filter join, but using the bloom filter to implement the Parquet RecordFilter on the specific column. In cases where where we join on columns and only select a small subset of the larger dataset, this would skip IO and deserialization cost for all items that didn't match the join.
> It's not obvious to me how we'd achieve this cleanly, since it involves multiple pieces (configuring of inputs in conjunction with a specific join strategy). In many cases the bloom filter join alone will achieve sufficient performance, but I'm logging this potential optimization for reference.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)