Apache Iceberg: zapis, który można zabrać ze sobą

Grupa przejmuje spółkę. Kupujący raportuje w Snowflake; przejęta spółka trzymała dane we własnym centrum danych i odpytywała je przez Trino. Plan integracji ma wiersz „zmigrować dane” i każdy wie, ile ten wiersz kosztuje: rok kopiowania, dwa komplety liczb w międzyczasie i zależność od platformy, na której wyląduje kopia.
Alternatywa jest taka, żeby zapis był w formacie, który obie strony już czytają, z katalogiem kontrolowanym przez grupę. Apache Iceberg jest w tej chwili formatem, co do którego zgadza się najwięcej rywali, a powodem nie jest sentyment. Jest nim kształt jego metadanych. Zapis Hurukana jest projektowany jako przenośny dokładnie w tym sensie, a warstwa Data, która go trzyma, jest w budowie.
Tabela jako drzewo z jednym wskaźnikiem
Iceberg opisuje tabelę jako drzewo plików, których nigdy się nie edytuje. Na górze jest plik metadanych tabeli; wskazuje migawkę; migawka wskazuje listę manifestów; każdy manifest wymienia pliki danych i pliki usunięć wraz ze statystykami. Zmiana tabeli zapisuje nowe liście i nowy korzeń, a potem robi jedną małą rzecz: przestawia wskaźnik w katalogu ze starego korzenia na nowy. Specyfikacja czyni tę zamianę atomową.
Wynikają z tego dwie rzeczy. Każdy korzeń, który kiedykolwiek istniał, pozostaje pełną, czytelną wersją tabeli — to podróż w czasie, a w Hurukanie odpowiedź na pytanie „co widział agent, gdy to proponował”. I kilka silników może bezpiecznie pisać do tej samej tabeli, bo jedyną rzeczą, o którą rywalizują, jest wskaźnik.
Bieżące wydanie to Iceberg 1.12.0 z września 2026 (sprawdzono 21.10.2026). Wersja 3 specyfikacji
jest przyjęta: wektory usunięć w plikach Puffin, pochodzenie wierszy, typ VARIANT, typy
geometryczne, znaczniki czasu w nanosekundach i wartości domyślne kolumn. Wersja 4 jest w pracach i
nie została przyjęta.
Ukryte partycjonowanie i dlaczego analityk nigdy o nie nie pyta
Iceberg wyprowadza wartości partycji z przekształceń kolumn — dzień ze znacznika czasu, kubełek z identyfikatora — i zapisuje przekształcenie w metadanych. Zapytanie filtrujące po znaczniku czasu jest przycinane do właściwych partycji bez wiedzy piszącego, że partycje istnieją. Gdy zmienia się wolumen, specyfikacja partycji może ewoluować bez przepisywania danych; stare pliki zachowują stary układ, nowe dostają nowy, a oba czyta się poprawnie.
Dla zapisu, który ma czytać superinteligencja, a nie ludzie znający układ składowania, ta własność znaczy więcej, niż brzmi. Ontologia może nazwać tabelę „płatności” i zostawić układ warstwie Data.
Katalog jest tam, gdzie siedzi suwerenność
Wszystko powyżej to pliki. Pliki mogą leżeć w dowolnym magazynie obiektowym, także w budynku firmy. Czego pliki nie potrafią, to powiedzieć czytelnikowi, który korzeń jest bieżący i czy ta osoba może go czytać. To zadanie katalogu i to jest miejsce, w którym firma albo jest właścicielem swojego zapisu, albo go wynajmuje.
Iceberg publikuje otwartą specyfikację katalogu REST: przestrzenie nazw, tabele, widoki, commity, planowanie skanów i wydawanie poświadczeń za jednym interfejsem HTTP. Apache Polaris, jej implementacja, został projektem najwyższego poziomu Apache w lutym 2026 i wydał wersję 1.8.0 we wrześniu 2026 (sprawdzono 21.10.2026). Istnieją inne implementacje. Sedno jest takie, że katalog można uruchomić na infrastrukturze, którą firma wybiera, a silnik dowolnego vendora może z nim rozmawiać.
Tak warstwa bezpieczeństwa i suwerenności traktuje zapis: uprawnienia egzekwowane w katalogu, na własnym serwerze firmy, jednakowo dla ludzi i agentów. Silnik vendora, który czyta zapis, robi to z poświadczeniami, które wręczy mu katalog, i nic ponadto.
Kto to czyta
Lista z dokumentacji samych vendorów na 21.10.2026: Snowflake czyta i zapisuje tabele Iceberg do wersji specyfikacji v3 i może używać zewnętrznego katalogu REST; Amazon S3 Tables przechowują Iceberg natywnie, łącznie z v3; katalog lakehouse Google wystawia punkt końcowy REST Iceberga; Databricks oferuje zarządzane tabele Iceberg w Unity Catalog z punktem końcowym REST. Spark, Flink, Trino i DuckDB czytają go bezpośrednio.
Dla przejęcia z pierwszego akapitu ta lista jest planem: jeden zapis, na magazynie grupy, za katalogiem grupy, czytany przez Snowflake z jednej strony i Trino z drugiej, bez wiersza „migracja” w budżecie.
Co robią tu agenci, a co zostaje przy ludziach
Agent może naszkicować zadanie, które ewoluuje specyfikację partycji, gdy rośnie wolumen; scalanie małych plików; wygaszanie starych migawek po osiągnięciu retencji ustalonej przez firmę. Każde z nich jest propozycją z wynikiem testu, zatwierdzaną przez człowieka, zapisywaną jak każda inna zmiana w Hurukanie.
Ludzie zachowują decyzje, których nie da się wywnioskować: który katalog i gdzie działa; kto może czytać którą przestrzeń nazw; jak długo trzymana jest historia i kiedy dane osoby są usuwane na dobre; oraz czy przenieść tabelę na nowszą wersję specyfikacji, skoro czytelnik nieznający v3 nie przeczyta tabeli, która jej używa. Pytanie, które dane w ogóle mogą opuścić budynek, jest osobne i podejmuje je tekst Które dane nie mogą opuścić firmy.
Test, który możesz zrobić dziś
Zapytaj, kto w Twojej firmie mógłby w tym tygodniu skierować nowy silnik na najważniejszą tabelę i sprawić, żeby czytał ją poprawnie bez eksportu. Jeśli odpowiedź zawiera zgłoszenie do wsparcia vendora, zapis nie jest jeszcze Twój.
- Apache Iceberg
- format tabeli
- katalog
- wyjście
- suwerenność