Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Iceberg REST catalog does not serve registerTable

Đang mở
#1,850 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 3 ngày

Chưa có ai nhận issue này.

  • #1851 của @moomindani — đã đóng, không merge

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
55/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
java
Lĩnh vực
api, database

Hướng nghiên cứu

Bắt đầu bằng cách tái hiện yêu cầu đăng ký POST tới một máy chủ đã bật iceberg-table, sau đó lần theo định tuyến catalog REST và đường dẫn đăng ký Unity Catalog. Kiểm tra cách các thao tác tạo, cập nhật và xóa hiện có được kết nối, cũng như cách metadata của Iceberg được đọc. Công việc được xem là hoàn tất khi endpoint được công bố qua GET /v1/config, trả về các phản hồi được mô tả và bảng đã đăng ký có thể được liệt kê và tải mà không sửa đổi tệp metadata của nó.

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

Mô tả

Describe the bug

POST /v1/{prefix}/namespaces/{namespace}/register is not served, so a table whose Iceberg metadata
already exists cannot be brought into this catalog through the REST API. The request is answered before
any service is reached, with a 404 for a path this server does not have, and the endpoint is not in the
endpoints list from GET /v1/config either.

That is the path an engine takes to adopt a table written elsewhere -- Spark's
CALL system.register_table, or any client calling Catalog.registerTable -- and the path a migration
of existing Iceberg tables onto Unity Catalog goes through. Without it the only way in is to create the
table again and rewrite its data, or to insert rows into Unity Catalog by some other route and hope the
metadata pointer matches.

To Reproduce

Steps to reproduce the behavior:

  1. Start the server with server.iceberg-table.enabled=true and create a catalog unity with a schema
    default.
  2. Write, or take, an Iceberg table's metadata file somewhere the server can read.
  3. POST /api/2.1/unity-catalog/iceberg/v1/catalogs/unity/namespaces/default/register with
    {"name": "adopted", "metadata-location": "<that file>"} answers 404 Not Found.

Expected behavior

200 with the LoadTableResponse for the table the metadata file describes, and the table registered in
Unity Catalog from that point on: listed by listTables, loadable by loadTable. A name that is
already taken is 409 unless the request asks to overwrite; a namespace that does not exist is 404. The
metadata file itself is not modified. The endpoint is advertised in the config endpoints list.

System [please complete the following information]:

  • OS: macOS 15, server built from main at 58d5c7b

Additional context

Verified on main at 58d5c7b against a running server. The rest of the write surface -- create, update,
drop -- landed in #1696; this is the one write the spec defines that is still missing, apart from
transactions and the view endpoints.

Related: #1846 covers three other operations the spec defines that this catalog does not serve
(dropNamespace, updateProperties, renameTable). This one is filed separately because those three
are already implemented inside Unity Catalog and only need wiring, while registering a table needs a
read of metadata for a table the catalog does not have yet.

Ngôn ngữ chính
Java
Star
3.6k
Fork
687
Merge trung bình
4 ngày 4 giờ
Pull request đã merge (30 ngày)
47

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của unitycatalog/unitycatalog

Tất cả issue của unitycatalog/unitycatalog

Issue tương tự

Thêm issue về Java

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.