apache / apache/parquet-java

Add merge blocks command to parquet-tools

Đang mở
#2,214 4 bình luận 0 reaction 0 người được giao Xem trên GitHub
Component: Java Component: Parquet Priority: Major Type: enhancement
Ngôn ngữ chính
Java
Star
3.1k
Fork
1.6k
Merge trung bình
3 ngày 12 giờ
Pull request đã merge (30 ngày)
33

Mô tả

Current implementation of merge command in parquet-tools doesn't merge row groups, just places one after the other. Add API and command option to be able to merge small blocks into larger ones up to specified size limit.
###### Implementation details:

Blocks are not reordered not to break possible initial predicate pushdown optimizations.
Blocks are not divided to fit upper bound perfectly.
This is an intentional performance optimization.
This gives an opportunity to form new blocks by coping full content of smaller blocks by column, not by row.
###### Examples:
1. Input files with blocks sizes:
```java

[128 | 35], [128 | 40], [120]
```
Expected output file blocks sizes:
`merge `
```java

[128 | 35 | 128 | 40 | 120]
```
`merge -b`
```java

[128 | 35 | 128 | 40 | 120]
```
`merge -b -l 256 `
```java

[163 | 168 | 120]
```

1. Input files with blocks sizes:
```java

[128 | 35], [40], [120], [6] 
```
Expected output file blocks sizes:
`merge`
```java

[128 | 35 | 40 | 120 | 6] 
```
`merge -b`
```java

[128 | 75 | 126] 
```
`merge -b -l 256`
```java

[203 | 126]
```

**Reporter**: [Ekaterina Galieva](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=Katya) / @kgalieva
**Assignee**: [Ekaterina Galieva](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=Katya) / @kgalieva
#### PRs and other links:
- [GitHub Pull Request #512](https://github.com/apache/parquet-mr/pull/512)
- [GitHub Pull Request #621](https://github.com/apache/parquet-mr/pull/621)
- [GitHub Pull Request #775](https://github.com/apache/parquet-mr/pull/775)
- [GitHub Pull Request #512](https://github.com/apache/parquet-mr/pull/512)

**Note**: *This issue was originally created as [PARQUET-1381](https://issues.apache.org/jira/browse/PARQUET-1381). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Hướng nghiên cứu

Bắt đầu với lệnh merge hiện có trong parquet-tools và API được lệnh đó sử dụng. Xem các pull request được liên kết để nắm bối cảnh triển khai trước đây, sau đó xác minh các ví dụ về kích thước block và các tùy chọn lệnh được mô tả ở đây; được coi là hoàn tất khi merge -b tạo ra các block lớn hơn mà không sắp xếp lại hoặc chia chúng vượt quá giới hạn đã chỉ định.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
cli, data-engineering
Loại issue
Tính năng
Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
20/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.