Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Discrepency in the fetched table properties

オープン
#3,247 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
静か
技術スタック
python
領域
databases

調査の方向性

catalog.load_table(table_identifier) から開始し、返されたテーブル設定が table.io から作成されたファイルシステムにどのように渡されるかを追跡します。示されている Polaris CLI および REST の呼び出しで不一致を再現し、その後、ファイルシステムが手動でプロパティを変更せずに返されたエンドポイントと認証情報を使用することを確認します。リポジトリにカタログから読み込まれたテーブルプロパティのカバレッジがある場合は、リグレッションテストを追加します。

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

説明

Apache Iceberg version

None

Please describe the bug 🐞

I am using Apache Polaris as catalog and when i load the table using pyiceberg, the response has config that is different from what i get when i use Polaris CLI and not only that when i use the file system from this table, i am getting Permission Denied errors, suggesting the credentials in the table are wrong.

Details:

polaris --profile root tables get --catalog "senec_catalog" --namespace "Senec.Stage.Bronze.Ampace_V3LFP" "BmsAmpaceV3ModuleMeasurement"

returns a table with the config property as follows:

, "config": {"s3.path-style-access": "true", "s3.endpoint": "http://localhost:9008"}

however, the rest api cal inside catalog.load_table(table_identifier) has a response that contains the config that looks like this:

{'s3.path-style-access': 'true', 's3.access-key-id': 'NFAIYHBUDHR1VBDHR8G0', 's3.secret-access
-key': 'L4Q_0W4We1ClcHsg8t0A5RcazPu4Xx1TR9P5-fbn', 's3.session-token': '***', 'client.refresh-credentials-endpoint': 'v1/senec_catalog/namespaces/Senec%1FStage%1FBronze%1FAmpace_V3LFP/tables/BmsAmpaceV3ModuleMeasurement/credentials', '
expiration-time': '1776355429000', 's3.endpoint': 'http://localhost:9008', 's3.session-token-e
xpires-at-ms': '1776355429000'}

which would have been okay but using a filesystem created using the io from this table is always resulting in permission errors, so i have to manually set the table properties like so:

        self.tbl.io.properties["s3.endpoint"] = self.catalog.properties["s3.endpoint"]
        self.tbl.io.properties["s3.endpoint"] = self.catalog.properties.get("s3.endpoint")
        self.tbl.io.properties["s3.access-key-id"] = self.catalog.properties.get("s3.access-key-id")
        self.tbl.io.properties["s3.secret-access-key"] = self.catalog.properties.get("s3.secret-access-key")
        self.tbl.io.properties.pop("s3.session-token", None)

Could anyone tell me why is this the case? This is related to #1958 as i am trying to use the filesystem to delete the orphan files.

Willingness to contribute
  • I can contribute a fix for this bug independently
  • I would be willing to contribute a fix for this bug with guidance from the Iceberg community
  • I cannot contribute a fix for this bug at this time
主要言語
Python
スター
1.1k
フォーク
589
平均マージ
2日 2時間
マージ済み PR(30日)
70

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

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

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/iceberg-python のほかの issue

apache/iceberg-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

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

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