apache / apache/iceberg-python

Upserting large table extremely slow

オープン
#2,159 コメント 22 件 リアクション 2 件 担当者 0 名 GitHub で見る
stale
主要言語
Python
スター
1.1k
フォーク
581
平均マージ
1日 17時間
マージ済み PR(30日)
78

説明

### Feature Request / Improvement

## Feature Request / Improvement

Upserting large dataframes (tens of millions of rows) in un-usably slow due to creating a massive `BooleanExpression` in `upsert_util.create_match_filter`. This is before any IO is even started. It would be nice if upserts could support large tables.

I'd be happy to work on this issue.

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

upsert_util.create_match_filter から開始します。ここでは、issue が大規模な BooleanExpression を I/O 前のボトルネックとして特定しています。dataframe の upsert 中にこのフィルターがどのように使用されるかを追跡し、大きなテーブルでの挙動を測定します。数千万行の upsert でマッチフィルターの構築に使用不能なほどの時間がかからなくなれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
data-engineering
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
48/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。