Apache jéghegy egy nyílt táblázatformátum nagyon nagy analitikai adatkészletekhez, amely metaadat-információkat rögzít az adatkészletek állapotáról, ahogy azok fejlődnek és idővel változnak. Táblázatokat ad hozzá a számítási motorokhoz, beleértve a Sparkot, a Trino-t, a PrestoDB-t, a Flink-et és a Hive-t egy nagy teljesítményű táblázatformátum használatával, amely ugyanúgy működik, mint egy SQL-tábla. Az Iceberg nagyon népszerűvé vált az ACID-tranzakciók támogatása miatt az adattókban, valamint az olyan funkciók miatt, mint a séma- és partíciófejlődés, az időutazás és a visszaállítás.
Az Apache Iceberg integrációt az AWS elemzési szolgáltatások támogatják, beleértve Amazon EMR, Amazon Athénéés AWS ragasztó. Az Amazon EMR olyan fürtöket tud biztosítani Spark, Hive, Trino és Flink segítségével, amelyek képesek futtatni az Iceberget. Az Amazon EMR 6.5.0-s verziójától kezdve megteheti használja az Iceberget az EMR-fürttel bootstrap művelet nélkül. 2022 elején az AWS bejelentette az Apache Iceberg által működtetett Athena ACID tranzakciók általános elérhetőségét. A nemrég megjelent Az Athena lekérdezőmotor 3-as verziója jobb integrációt biztosít az Iceberg táblázat formátummal. AWS Glue 3.0 és újabb támogatja az Apache Iceberg keretrendszert adattókhoz.
Ebben a bejegyzésben megvitatjuk, mit szeretnének az ügyfelek a modern adatforrásoktól, és hogyan segít az Apache Iceberg az ügyfelek igényeinek kielégítésében. Ezután végigvezetünk egy megoldáson, amellyel egy nagy teljesítményű és fejlődő Iceberg adattót építhetünk rá Amazon egyszerű tárolási szolgáltatás (Amazon S3) és növekményes adatokat dolgozhat fel beszúrási, frissítési és törlési SQL utasítások futtatásával. Végül megmutatjuk, hogyan hangolhatja a folyamat teljesítményét az olvasási és írási teljesítmény javítása érdekében.
Hogyan kezeli az Apache Iceberg az ügyfelek igényeit a modern adatforrásokban?
Egyre több ügyfél épít fel strukturált és strukturálatlan adatokkal rendelkező adatforrásokat számos felhasználó, alkalmazás és elemzőeszköz támogatására. Fokozott szükség van az olyan adatforrásokra, amelyek támogatják az olyan adatbázis-szolgáltatásokat, mint az ACID-tranzakciók, rekordszintű frissítések és törlések, időutazás és visszaállítás. Az Apache Iceberget úgy tervezték, hogy támogassa ezeket a funkciókat az Amazon S3 költséghatékony petabájt méretű adattóin.
Az Apache Iceberg az egyes adatfájlok létrehozásakor az adatkészlettel kapcsolatos gazdag metaadat-információk rögzítésével az ügyfelek igényeit kielégíti. Az Iceberg-tábla architektúrájában három réteg van: az Iceberg-katalógus, a metaadat-réteg és az adatréteg, amint azt a következő ábra mutatja (forrás).
Az Iceberg katalógus az aktuális táblázat metaadatfájljára mutató metaadat-mutatót tárolja. Amikor egy kiválasztott lekérdezés egy Iceberg táblát olvas, a lekérdezőmotor először az Iceberg katalógusba lép, majd lekéri az aktuális metaadatfájl helyét. Amikor az Iceberg táblát frissítik, a rendszer új pillanatképet hoz létre a tábláról, és a metaadatmutató az aktuális tábla metaadatfájljára mutat.
A következő egy példa Iceberg katalógus az AWS Glue megvalósításával. Megtekintheti az adatbázis nevét, az Iceberg tábla helyét (S3 elérési utat) és a metaadatok helyét.
A metaadatréteg három típusú fájlból áll: a metaadatfájlból, a jegyzéklista és a jegyzékfájlból egy hierarchiában. A hierarchia tetején található a metaadatfájl, amely információkat tárol a tábla sémájáról, a partíció információiról és a pillanatképekről. A pillanatkép a jegyzéklistára mutat. A jegyzéklista tartalmazza a pillanatképet alkotó minden egyes jegyzékfájlra vonatkozó információkat, például a jegyzékfájl helyét, a hozzá tartozó partíciókat, valamint a követett adatfájlok partícióoszlopainak alsó és felső határát. A jegyzékfájl nyomon követi az adatfájlokat, valamint az egyes fájlokkal kapcsolatos további részleteket, például a fájlformátumot. Mindhárom fájl hierarchiában működik a pillanatképek, a sémák, a particionálás, a tulajdonságok és az adatfájlok nyomon követése érdekében egy Iceberg táblában.
Az adatréteg az Iceberg tábla egyedi adatfájljait tartalmazza. Az Iceberg a fájlformátumok széles skáláját támogatja, beleértve a Parquet, ORC és Avro fájlokat. Mivel az Iceberg tábla nyomon követi az egyes adatfájlokat, ahelyett, hogy csak a partíció helyére mutatna az adatfájlokkal, elkülöníti az írási műveleteket az olvasási műveletektől. Az adatfájlokat bármikor megírhatja, de csak explicit módon hajtsa végre a módosítást, amely létrehozza a pillanatkép- és metaadatfájlok új verzióját.
Megoldás áttekintése
Ebben a bejegyzésben bemutatunk egy megoldást, amellyel egy nagy teljesítményű Apache Iceberg adattót építhetsz Amazon S3-on; növekményes adatok feldolgozása beszúrási, frissítési és törlési SQL utasításokkal; és hangolja az Iceberg táblázatot az olvasási és írási teljesítmény javítása érdekében. A következő ábra a megoldás architektúráját mutatja be.
Ennek a megoldásnak a bemutatására használjuk a Amazon vásárlói vélemények adatkészlet egy S3 vödörben (s3://amazon-reviews-pds/parquet/
). Valós felhasználási esetben az S3 tárolójában tárolt nyers adatok lennének. Az adatméretet a következő kóddal tudjuk ellenőrizni a AWS parancssori interfész (AWS CLI):
A teljes objektumszám 430, a teljes méret pedig 47.4 GiB.
A megoldás beállításához és teszteléséhez a következő magas szintű lépéseket hajtjuk végre:
- Állítson be egy S3 tárolót a kurált zónában az átalakított adatok Iceberg táblázat formátumban való tárolására.
- Indítson el egy EMR-fürtöt az Apache Iceberg számára megfelelő konfigurációkkal.
- Hozzon létre egy jegyzetfüzetet az EMR Stúdióban.
- Konfigurálja a Spark munkamenetet az Apache Iceberg számára.
- Konvertálja az adatokat Iceberg táblázat formátumba, és helyezze át az adatokat a kurált zónába.
- Futtasson beszúrási, frissítési és törlési lekérdezéseket az Athénában a növekményes adatok feldolgozásához.
- Hajtsa végre a teljesítményhangolást.
Előfeltételek
Ennek az áttekintésnek a követéséhez rendelkeznie kell egy AWS-fiók egy AWS Identity and Access Management (IAM) szerepkör, amely elegendő hozzáféréssel rendelkezik a szükséges erőforrások biztosításához.
Állítsa be az S3 tárolót az Iceberg-adatokhoz az adattó kurált zónájában
Válassza ki azt a régiót, amelyben létre kívánja hozni az S3 tárolót, és adjon meg egy egyedi nevet:
Indítson el egy EMR-fürtöt Iceberg-feladatok futtatásához a Spark használatával
Létrehozhat egy EMR-fürtöt a AWS felügyeleti konzol, Amazon EMR CLI, vagy AWS Cloud Development Kit (AWS CDK). Ebben a bejegyzésben végigvezetjük, hogyan hozhat létre EMR-fürtöt a konzolról.
- Az Amazon EMR konzolon válassza a lehetőséget Klaszter létrehozása.
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Speciális beállítások.
- A Szoftver konfiguráció, válassza ki a legújabb Amazon EMR-kiadást. 2023 januárjában a legújabb kiadás a 6.9.0. Az Iceberg 6.5.0 és újabb kiadást igényel.
- választ JupyterEnterpriseGateway és a Szikra mint a telepítendő szoftver.
- A Szerkessze a szoftverbeállításokatválassza Adja meg a konfigurációt és írja be
[{"classification":"iceberg-defaults","properties":{"iceberg.enabled":true}}]
. - Hagyja a többi beállítást az alapértelmezett értékükön, és válassza ki Következő.
- A hardver, használja az alapértelmezett beállítást.
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Következő.
- A Klaszter neve, írjon be egy nevet. Használjuk
iceberg-blog-cluster
. - A többi beállítást hagyja változatlanul, és válassza ki Következő.
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Klaszter létrehozása.
Hozzon létre egy jegyzetfüzetet az EMR Stúdióban
Most végigvezetjük, hogyan hozhat létre jegyzetfüzetet az EMR Studio programban a konzolról.
- Az IAM konzolon hozzon létre egy EMR Studio szolgáltatási szerepet.
- Az Amazon EMR konzolon válassza a lehetőséget EMR Stúdió.
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Első lépések.
A Első lépések oldal egy új lapon jelenik meg.
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Stúdió létrehozása az új lapon.
- Adjon meg egy nevet. Iceberg-stúdiót használunk.
- Válassza ugyanazt a VPC-t és alhálózatot, mint az EMR-fürthöz, és az alapértelmezett biztonsági csoportot.
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a AWS Identity and Access Management (IAM) a hitelesítéshez, és válassza ki az imént létrehozott EMR Studio szolgáltatási szerepkört.
- Válasszon egy S3 elérési utat Munkaterületek biztonsági mentése.
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Stúdió létrehozása.
- A Studio létrehozása után válassza ki a Studio hozzáférési URL-címét.
- Az EMR Studio irányítópultján válassza a lehetőséget Hozzon létre munkaterületet.
- Adja meg a munkaterület nevét. Használjuk
iceberg-workspace
. - Bontsa Speciális konfiguráció És válasszon Csatlakoztassa a munkaterületet egy EMR-fürthöz.
- Válassza ki a korábban létrehozott EMR-fürtöt.
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a Munkaterület létrehozása.
- Új lap megnyitásához válassza ki a munkaterület nevét.
A navigációs ablaktáblában van egy jegyzetfüzet, amelynek neve megegyezik a munkaterületével. Esetünkben jéghegy-munkatérről van szó.
- Nyissa ki a jegyzetfüzetet.
- Amikor a rendszer kernel kiválasztását kéri, válassza a lehetőséget Szikra.
Állítson be egy Spark-munkamenetet az Apache Iceberg számára
Használja a következő kódot, és adja meg saját S3 gyűjtőhelyének nevét:
Ez a következő Spark-munkamenet-konfigurációkat állítja be:
- spark.sql.catalog.demo – Regisztrál egy demó nevű Spark-katalógust, amely az Iceberg Spark katalógus-bővítményt használja.
- spark.sql.catalog.demo.catalog-impl – A demó Spark katalógus az AWS Glue-t használja fizikai katalógusként az Iceberg adatbázis- és táblázatinformációk tárolására.
- spark.sql.catalog.demo.warehouse – A demó Spark katalógus az összes Iceberg metaadatot és adatfájlt a tulajdonság által meghatározott gyökérútvonalon tárolja:
s3://iceberg-curated-blog-data
. - spark.sql.extensions – Támogatja az Iceberg Spark SQL-bővítményeket, amely lehetővé teszi az Iceberg Spark eljárások és néhány csak Iceberg SQL-parancs futtatását (ezt egy későbbi lépésben használja).
- spark.sql.catalog.demo.io-impl – Az Iceberg lehetővé teszi a felhasználók számára, hogy az S3FileIO-n keresztül adatokat írjanak az Amazon S3-ba. Az AWS ragasztóadat-katalógus alapértelmezés szerint ezt a FileIO-t használja, és más katalógusok is betölthetik ezt a FileIO-t az io-impl katalógustulajdonság használatával.
Konvertálja az adatokat Iceberg táblázat formátumba
Az Iceberg táblázat betöltéséhez használhatja a Sparkot az Amazon EMR-en vagy az Athena-t. Az EMR Studio Workspace jegyzetfüzet Spark munkamenetében futtassa a következő parancsokat az adatok betöltéséhez:
A kód futtatása után két előtagot kell találnia az adattárház S3 elérési útjában (s3://iceberg-curated-blog-data/reviews.db/all_reviews
): adatok és metaadatok.
Növekményes adatok feldolgozása beszúrási, frissítési és törlési SQL utasításokkal az Athena programban
Az Athena egy kiszolgáló nélküli lekérdezőmotor, amellyel olvasási, írási, frissítési és optimalizálási feladatokat hajthat végre Iceberg táblákon. Annak bemutatására, hogy az Apache Iceberg Data Lake formátum hogyan támogatja a növekményes adatfeldolgozást, beszúrási, frissítési és törlési SQL utasításokat futtatunk az adattóban.
Navigáljon az Athena konzolra, és válassza a lehetőséget Lekérdezés-szerkesztő. Ha először használja az Athena lekérdezésszerkesztőt, akkor ezt kell tennie konfigurálja a lekérdezés eredményének helyét hogy a korábban létrehozott S3 vödör legyen. Látnia kell, hogy a reviews.all_reviews táblázat lekérdezhető. Futtassa a következő lekérdezést annak ellenőrzésére, hogy sikeresen betöltötte-e az Iceberg táblát:
Növekményes adatok feldolgozása beszúrási, frissítési és törlési SQL utasítások futtatásával:
Teljesítmény növelés
Ebben a részben az Apache Iceberg olvasási és írási teljesítményének javításának különböző módjait mutatjuk be.
Konfigurálja az Apache Iceberg tábla tulajdonságait
Az Apache Iceberg egy táblázatformátum, amely támogatja a táblatulajdonságokat a tábla viselkedésének konfigurálásához, például olvasáshoz, íráshoz és katalógushoz. Javíthatja az Iceberg táblák olvasási és írási teljesítményét a táblázat tulajdonságainak módosításával.
Ha például azt észleli, hogy túl sok kis fájlt ír egy Iceberg táblához, beállíthatja az írási fájl méretét úgy, hogy kevesebb, de nagyobb méretű fájlt írjon a lekérdezés teljesítményének javítása érdekében.
ingatlan | alapértelmezett | Leírás |
write.target-file-size-bytes | 536870912 (512 MB) | A körülbelül ennyi bájt céljára generált fájlok méretét szabályozza |
A táblázat formátumának megváltoztatásához használja a következő kódot:
Felosztás és válogatás
A lekérdezés gyors lefutása érdekében minél kevesebb adatot olvasnak ki, annál jobb. Az Iceberg kihasználja az írási időben rögzített gazdag metaadatokat, és megkönnyíti az olyan technikákat, mint a szkennelés tervezése, a particionálás, a metszés, valamint az oszlopszintű statisztikák, például a min/max értékek, az egyezési rekordokkal nem rendelkező adatfájlok kihagyásához. Végigvezetjük, hogyan működik a lekérdezésvizsgálat tervezése és a particionálás az Icebergben, és hogyan használjuk ezeket a lekérdezések teljesítményének javítására.
Lekérdezés vizsgálat tervezése
Egy adott lekérdezés esetében a lekérdezőmotor első lépése a vizsgálat tervezése, amely a lekérdezéshez szükséges fájlok megkeresésére szolgáló folyamat. Az Iceberg táblában történő tervezés nagyon hatékony, mivel az Iceberg gazdag metaadatai felhasználhatók a szükségtelen metaadatfájlok kivágására, valamint az egyező adatokat nem tartalmazó adatfájlok szűrésére. Teszteink során megfigyeltük, hogy az Athena 50%-ban vagy kevesebb adatot szkennelt egy adott lekérdezéshez egy Iceberg táblán az eredeti adatokhoz képest, mielőtt Iceberg formátumba konvertálta volna.
Kétféle szűrés létezik:
- Metaadat szűrés – Az Iceberg két szintű metaadatot használ a fájlok nyomon követésére pillanatfelvételen: a jegyzéklista és a jegyzékfájlok. Először a jegyzéklistát használja, amely a jegyzékfájlok indexeként működik. A tervezés során az Iceberg a jegyzéklistában lévő partícióérték-tartomány használatával szűri a jegyzékeket anélkül, hogy elolvasná az összes jegyzékfájlt. Ezután a kiválasztott jegyzékfájlokat használja az adatfájlok lekéréséhez.
- Adatszűrés – A jegyzékfájlok listájának kiválasztása után az Iceberg a jegyzékfájlokban tárolt egyes adatfájlok partíciós adatait és oszlopszintű statisztikáit használja az adatfájlok szűrésére. A tervezés során a lekérdezési predikátumokat a rendszer a partíció adatain predikátumokká alakítja, és először alkalmazza az adatfájlok szűrésére. Ezután az oszlopok statisztikái, például az oszlopszintű értékszámok, a nullák, az alsó és a felső határértékek arra szolgálnak, hogy kiszűrjék azokat az adatfájlokat, amelyek nem egyeznek a lekérdezési predikátummal. Az Iceberg nagymértékben javítja a lekérdezések teljesítményét azáltal, hogy felső és alsó határokat használ az adatfájlok szűrésére a tervezési időben.
Felosztás és válogatás
A particionálás az azonos kulcsoszlopértékekkel rendelkező rekordok írásbeli csoportosításának módja. A particionálás előnye a gyorsabb lekérdezések, amelyek csak az adatok egy részét érik el, amint azt korábban kifejtettük a lekérdezésvizsgálat tervezésénél: adatszűrés. Az Iceberg egyszerűvé teszi a particionálást a rejtett particionálás támogatásával, oly módon, hogy az Iceberg egy oszlopérték felvételével és opcionálisan átalakításával partícióértékeket állít elő.
A mi használati esetünkben először a következő lekérdezést futtatjuk a nem particionált Iceberg táblán. Ezután felosztjuk az Iceberg táblát a vélemények kategóriája szerint, amelyet a WHERE lekérdezésben használunk a rekordok kiszűrésére. A particionálással a lekérdezés sokkal kevesebb adatot tudott átvizsgálni. Lásd a következő kódot:
Futtassa a következő select utasítást a nem particionált all_reviews táblán a particionált táblához képest a teljesítménybeli különbség megtekintéséhez:
Az alábbi táblázat az adatparticionálás teljesítményének javulását mutatja, körülbelül 50%-kal a teljesítménynövekedés és 70%-kal kevesebb beolvasott adat mellett.
Adatkészlet neve | Nem particionált adatkészlet | Partícionált adatkészlet |
Futásidő (másodperc) | 8.20 | 4.25 |
Beolvasott adatok (MB) | 131.55 | 33.79 |
Vegye figyelembe, hogy a futási idő az átlagos futási idő a tesztünkben több futtatással.
Jó teljesítményjavulást tapasztaltunk a particionálás után. Ez azonban tovább javítható az Iceberg jegyzékfájljaiból származó oszlopszintű statisztikák használatával. Az oszlopszintű statisztikák hatékony felhasználása érdekében tovább szeretné rendezni a rekordokat a lekérdezési minták alapján. Ha a teljes adatkészletet a lekérdezésekben gyakran használt oszlopok segítségével rendezi, az adatokat úgy rendezi át, hogy minden adatfájl egyedi értéktartományt kapjon az adott oszlopokhoz. Ha ezeket az oszlopokat használja a lekérdezési feltételben, lehetővé teszi a lekérdezőmotorok számára, hogy tovább ugorják az adatfájlokat, ezáltal még gyorsabb lekérdezéseket tesz lehetővé.
Írásra másolás vs. olvasásra-egyesítésre
Az Iceberg táblák frissítésének és törlésének implementálásakor az adattóban az Iceberg tábla tulajdonságai két megközelítést határoznak meg:
- Másolás írásra – Ezzel a megközelítéssel, ha az Iceberg táblában változások történnek, akár frissítések, akár törlések, az érintett rekordokhoz társított adatfájlok megkettőződnek és frissülnek. A rekordok vagy frissülnek, vagy törlődnek a megkettőzött adatfájlokból. Létrejön egy új pillanatkép az Iceberg tábláról, amely az adatfájlok újabb verziójára mutat. Ez lelassítja az általános írást. Előfordulhatnak olyan helyzetek, amikor egyidejű írásra van szükség ütközések esetén, ezért újra kell próbálkozni, ami még tovább növeli az írási időt. Másrészt az adatok beolvasásakor nincs szükség extra folyamatra. A lekérdezés az adatfájlok legfrissebb verziójából kéri le az adatokat.
- Egyesítés az olvasáskor – Ezzel a megközelítéssel, amikor frissítések vagy törlések vannak az Iceberg táblán, a meglévő adatfájlok nem kerülnek átírásra; ehelyett új törlési fájlok jönnek létre a változások nyomon követésére. A törléshez egy új törlési fájl jön létre a törölt rekordokkal. Az Iceberg tábla olvasása során a törlési fájl alkalmazásra kerül a visszakeresett adatokra, hogy kiszűrje a törlési rekordokat. Frissítések esetén egy új törlési fájl jön létre, amely a frissített rekordokat töröltként jelöli meg. Ezután egy új fájl jön létre ezekhez a rekordokhoz, de frissített értékekkel. Az Iceberg táblázat olvasásakor a törölt és az új fájlok egyaránt alkalmazásra kerülnek a visszakeresett adatokra, hogy tükrözzék a legújabb változtatásokat és a megfelelő eredményeket produkálják. Így minden további lekérdezésnél egy extra lépésre kerül sor az adatfájlok és a törlés és az új fájlok egyesítésére, ami általában megnöveli a lekérdezési időt. Másrészt az írás gyorsabb lehet, mert nincs szükség a meglévő adatfájlok átírására.
A két megközelítés hatásának teszteléséhez futtassa a következő kódot az Iceberg tábla tulajdonságainak beállításához:
Futtassa a frissítést, törölje és válassza ki az SQL utasításokat az Athénában, hogy megjelenítse a futásidejű különbséget az íráskor másolás és az olvasáskor történő egyesítés között:
Az alábbi táblázat összefoglalja a lekérdezés futási idejét.
Kérdés | Másolás írásra | Merge-on-Read | ||||
UPDATE | DELETE | SELECT | UPDATE | DELETE | SELECT | |
Futásidő (másodperc) | 66.251 | 116.174 | 97.75 | 10.788 | 54.941 | 113.44 |
Beolvasott adatok (MB) | 494.06 | 3.07 | 137.16 | 494.06 | 3.07 | 137.16 |
Vegye figyelembe, hogy a futási idő az átlagos futási idő a tesztünkben több futtatással.
Amint azt teszteredményeink mutatják, a két megközelítésben mindig vannak kompromisszumok. Az, hogy melyik megközelítést alkalmazzuk, a felhasználási esetektől függ. Összefoglalva, a megfontolások az olvasási/írási késleltetésre vonatkoznak. Az alábbi táblázatra hivatkozva megteheti a helyes választást.
. | Másolás írásra | Merge-on-Read |
Érvek | Gyorsabb olvasás | Gyorsabb ír |
Hátrányok | Drága írások | Magasabb késleltetés az olvasáskor |
Mikor kell használni | Alkalmas gyakori olvasáshoz, ritka frissítésekhez és törléshez vagy nagy kötegelt frissítésekhez | Jó a gyakori frissítéseket és törléseket tartalmazó táblázatokhoz |
Adattömörítés
Ha az adatfájl mérete kicsi, akkor több ezer vagy millió fájl kerülhet egy Iceberg-táblázatba. Ez drámaian megnöveli az I/O műveletet és lelassítja a lekérdezéseket. Ezenkívül az Iceberg minden adatfájlt nyomon követ egy adatkészletben. Több adatfájl több metaadathoz vezet. Ez viszont növeli a metaadatfájlok olvasásának többletköltségét és I/O-műveletét. A lekérdezés teljesítményének javítása érdekében javasolt a kis adatfájlokat nagyobb adatfájlokká tömöríteni.
Az Iceberg tábla rekordjainak frissítése és törlése során, ha az olvasás-egyesítés módszert használja, sok kis törléshez vagy új adatfájlhoz vezethet. A tömörítés futtatása egyesíti ezeket a fájlokat, és létrehozza az adatfájl újabb verzióját. Ezzel szükségtelenné válik az összeegyeztetésük az olvasás során. Javasoljuk, hogy rendszeres tömörítési munkákat végezzen, hogy a lehető legkisebb mértékben befolyásolja az olvasást, miközben továbbra is nagyobb írási sebességet tart fenn.
Futtassa a következő adattömörítési parancsot, majd futtassa az Athena kijelölési lekérdezését:
Az alábbi táblázat összehasonlítja az adattömörítés előtti és utáni futási időt. Körülbelül 40%-os teljesítményjavulás látható.
Kérdés | Adattömörítés előtt | Adattömörítés után |
Futásidő (másodperc) | 97.75 | 32.676 másodperc |
Beolvasott adatok (MB) | 137.16 M | 189.19 M |
Vegye figyelembe, hogy a kiválasztási lekérdezések a all_reviews
táblázat frissítési és törlési műveletek után, adattömörítés előtt és után. A futási idő az átlagos futási idő a tesztünkben több futtatással.
Tisztítsuk meg
Miután követte a megoldási útmutatót a használati esetek végrehajtásához, hajtsa végre a következő lépéseket az erőforrások megtisztítása és a további költségek elkerülése érdekében:
- Dobja el az AWS Glue táblákat és adatbázist az Athénából, vagy futtassa a következő kódot a notebookjában:
- Az EMR Studio konzolon válassza a lehetőséget munkaterületek a navigációs ablaktáblában.
- Válassza ki a létrehozott munkaterületet, és válassza ki töröl.
- Az EMR-konzolon navigáljon a Studios cimre.
- Válassza ki a létrehozott Stúdiót, és válassza ki töröl.
- Az EMR konzolon válassza a lehetőséget A klaszterek a navigációs ablaktáblában.
- Válassza ki a klasztert, és válassza ki végződik.
- Törölje az S3 tárolót és minden más erőforrást, amelyet a bejegyzés előfeltételeiként hozott létre.
Következtetés
Ebben a bejegyzésben bemutattuk az Apache Iceberg keretrendszert, és azt, hogy ez hogyan segít megoldani néhány kihívást, amelyekkel egy modern adattóban találkozhatunk. Ezután bemutattuk a növekményes adatok feldolgozását egy adattóban az Apache Iceberg segítségével. Végül mélyrehatóan belemerültünk a teljesítményhangolásba, hogy javítsuk az olvasási és írási teljesítményt a használati eseteinkhez.
Reméljük, hogy ez a bejegyzés hasznos információval szolgál Önnek annak eldöntéséhez, hogy be kívánja-e venni az Apache Iceberget a Data Lake megoldásába.
A szerzőkről
Flora Wu az AWS Data Lab idősebb rezidens építésze. Segít a vállalati ügyfeleknek adatelemzési stratégiák létrehozásában és olyan megoldások kidolgozásában, amelyek felgyorsítják vállalkozásuk eredményét. Szabadidejében szeret teniszezni, salsát táncolni és utazni.
Daniel Li Sr. Solutions Architect az Amazon Web Servicesnél. Arra összpontosít, hogy segítse ügyfeleit felhőszolgáltatások és stratégiák kidolgozásában, elfogadásában és megvalósításában. Amikor nem dolgozik, szívesen tölt időt a szabadban a családjával.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- Platoblockchain. Web3 metaverzum intelligencia. Felerősített tudás. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/big-data/use-apache-iceberg-in-a-data-lake-to-support-incremental-data-processing/
- 10
- 100
- 11
- 2022
- 2023
- 7
- 9
- a
- Képes
- Rólunk
- felett
- gyorsul
- hozzáférés
- jogosultság kezelés
- Akció
- cselekmények
- mellett
- További
- cím
- címek
- Hozzáteszi
- elfogadja
- Előny
- Után
- ellen
- Minden termék
- lehetővé teszi, hogy
- mindig
- amazon
- Amazon EMR
- Az Amazon Web Services
- Analitikus
- analitika
- és a
- bejelentés
- Apache
- alkalmazások
- alkalmazott
- megközelítés
- megközelít
- megfelelő
- építészet
- társult
- Hitelesítés
- elérhetőség
- elérhető
- átlagos
- elkerülése érdekében
- AWS
- AWS ragasztó
- alapján
- mert
- válik
- előtt
- haszon
- Jobb
- között
- nagyobb
- Bootstrap
- épít
- Épület
- vállalkozások
- fogások
- Rögzítése
- eset
- esetek
- katalógus
- katalógusok
- Kategória
- kihívások
- változik
- Változások
- ellenőrizze
- választás
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- besorolás
- felhő
- felhő szolgáltatások
- Fürt
- kód
- Oszlop
- Oszlopok
- össze
- hogyan
- elkövetni
- képest
- teljes
- Kiszámít
- egyidejű
- feltétel
- konfigurációk
- megfontolások
- Konzol
- Átalakítás
- átalakított
- költséghatékony
- kiadások
- tudott
- teremt
- készítette
- teremt
- a válogatott
- Jelenlegi
- vevő
- Ügyfelek
- Tánc
- műszerfal
- dátum
- Adatelemzés
- adattó
- adatfeldolgozás
- adattárház
- adatbázis
- adatkészletek
- mély
- mély merülést
- alapértelmezett
- meghatározott
- Demó
- bizonyítani
- függ
- tervezett
- részletek
- Fejleszt
- Fejlesztés
- különbség
- különböző
- megvitatni
- ne
- le-
- drámaian
- Csepp
- alatt
- minden
- Korábban
- Korai
- szerkesztő
- hatékonyan
- hatékony
- bármelyik
- megszünteti
- engedélyezve
- lehetővé téve
- vége
- Motor
- Motorok
- belép
- Vállalkozás
- vállalati ügyfelek
- Eter (ETH)
- Még
- evolúció
- fejlődik
- fejlődik
- példa
- létező
- létezik
- magyarázható
- kiterjesztések
- külön-
- megkönnyíti
- család
- GYORS
- gyorsabb
- Jellemzők
- Ábra
- filé
- Fájlok
- szűrő
- szűrő
- Szűrők
- Végül
- Találjon
- vezetéknév
- első
- koncentrál
- következik
- következő
- formátum
- Keretrendszer
- gyakori
- ból ből
- további
- Továbbá
- általános
- generált
- kap
- adott
- Goes
- jó
- nagymértékben
- Csoport
- kéz
- történik
- segít
- segít
- segít
- Rejtett
- hierarchia
- magas szinten
- nagy teljesítményű
- nagy teljesítményű
- Kaptár
- remény
- Hogyan
- How To
- azonban
- HTML
- HTTPS
- IAM
- Identitás
- identitás- és hozzáférés-kezelés
- Hatás
- befolyásolta
- végre
- végrehajtás
- végrehajtási
- javul
- javított
- javulás
- javítja
- in
- Beleértve
- Növelje
- <p></p>
- Növeli
- index
- egyéni
- információ
- telepíteni
- helyette
- integráció
- Bevezetett
- Izolátumok
- IT
- január
- Állások
- Kulcs
- labor
- tó
- nagy
- nagyobb
- Késleltetés
- legutolsó
- legutolsó kiadás
- réteg
- tojók
- vezet
- szintek
- LIMIT
- vonal
- Lista
- kis
- kiszámításának
- elhelyezkedés
- csinál
- KÉSZÍT
- vezetés
- sok
- jel
- piactér
- Mérkőzés
- egyező
- megy
- Metaadatok
- esetleg
- Több millió
- modern
- több
- mozog
- többszörös
- név
- Nevezett
- Keresse
- Navigáció
- Szükség
- szükséges
- igények
- Új
- jegyzetfüzet
- tárgy
- nyitva
- működés
- Művelet
- optimalizálás
- Optimalizálja
- érdekében
- eredeti
- Más
- szabadban
- átfogó
- saját
- üvegtábla
- rész
- ösvény
- minták
- teljesít
- teljesítmény
- fizikai
- tervezés
- Plató
- Platón adatintelligencia
- PlatoData
- játék
- csatlakoztat
- pont
- Népszerű
- lehetséges
- állás
- powered
- előfeltételek
- eljárások
- folyamat
- feldolgozás
- gyárt
- ingatlanait
- ingatlan
- ad
- biztosít
- amely
- ellátás
- hatótávolság
- Nyers
- nyers adatok
- Olvass
- Olvasás
- igazi
- nemrég
- ajánlott
- nyilvántartások
- tükröznie
- vidék
- nyilvántartások
- szabályos
- engedje
- felszabaduló
- megmaradó
- kötelező
- megköveteli,
- Tudástár
- eredményez
- Eredmények
- Vélemények
- Gazdag
- Szerep
- gyökér
- futás
- futás
- azonos
- beolvasás
- másodperc
- Rész
- biztonság
- kiválasztott
- kiválasztása
- vagy szerver
- szolgáltatás
- Szolgáltatások
- ülés
- készlet
- Szettek
- beállítás
- beállítások
- kellene
- előadás
- Műsorok
- Egyszerű
- helyzetek
- Méret
- lassítja
- kicsi
- Pillanatkép
- So
- szoftver
- megoldások
- Megoldások
- néhány
- Szikra
- különleges
- sebesség
- Költési
- SQL
- Kezdve
- Állami
- nyilatkozat
- nyilatkozatok
- statisztika
- Lépés
- Lépései
- Még mindig
- tárolás
- tárolni
- memorizált
- árnyékolók
- stratégiák
- Stratégia
- szerkesztett
- strukturált és strukturálatlan adatok
- stúdió
- alhálózati
- későbbi
- sikeresen
- ilyen
- elegendő
- ÖSSZEFOGLALÓ
- támogatás
- Támogatott
- Támogató
- Támogatja
- táblázat
- tart
- bevétel
- cél
- feladatok
- technikák
- tenisz
- teszt
- Tesztelés
- tesztek
- A
- az információ
- Az állam
- azok
- ezáltal
- ezer
- három
- Keresztül
- idő
- időutazás
- nak nek
- együtt
- is
- szerszámok
- felső
- Végösszeg
- vágány
- Tranzakciók
- transzformáló
- utazás
- Utazó
- FORDULAT
- típusok
- alatt
- egyedi
- Frissítések
- frissítve
- Frissítés
- frissítése
- URL
- használ
- használati eset
- Felhasználók
- rendszerint
- VAL
- érték
- Értékek
- ellenőrzése
- változat
- sétált
- végigjátszás
- Raktár
- órák
- módon
- háló
- webes szolgáltatások
- Mit
- vajon
- ami
- míg
- széles
- Széleskörű
- lesz
- nélkül
- Munka
- dolgozó
- művek
- lenne
- ír
- írás
- A te
- zephyrnet