Pagbabalik-tanaw sa AWS Amarathon 2025

Pagbuo ng mga Streaming Iceberg Table para sa Real-Time Logistics Analytics

Serye ng Pagbabalik-tanaw

Mga Tala ng Sesyon

Mga Hamon sa Modernong Logistics:

  • Pamamahala ng maraming stream para sa mga truck, driver, route, fuel, maintenance, shipment, at warehouse.
  • Pangangailangan ng real-time na operational view at pangmatagalang analytics. Mga Requirement sa Data Storage:
  • Bago at pinagsamang mga view para sa agarang operation.
  • Paggamit ng Apache Iceberg para sa pangmatagalang analytics. Technology Stack:
  • RisingWave: Data platform para sa mga streaming capability.
  • Lakekeeper: Open REST catalog para sa pamamahala ng data.
  • Kafka: Event backbone para sa streaming data.
  • Object Storage (hal., MinIO): Storage solution para sa data. Layunin:
  • Ipakita kung paano bumuo ng mga streaming Iceberg table gamit ang tinukoy na open stack.
  • Magbigay ng simple at epektibong solusyon para sa modernong pamamahala ng logistics data. Ang Problema sa Logistics Analytics
  • Ang mga logistics platform ngayon ay gumagawa ng:
  • Mga Truck: fleet inventory at mga lokasyon
  • Mga Driver: roster at mga assignment
  • Mga Shipment: pinagmulan, destinasyon, at timbang
  • Mga Warehouse: capacity at mga site
  • Mga Route: ETA at mga distansya
  • Fuel at Maintenance: mga signal ng gastos at reliability
  • Ang hamon:
  • Kailangan ng mga operational team ang bago at pinagsamang mga view mula sa lahat ng stream na ito.
  • Kailangan ng mga data team ang parehong data sa Iceberg para sa BI, AI, at historical analysis. Ang Bubuuin Natin (Streaming Iceberg Pattern)
  • Nagpapadala ang Kafka ng pitong logistics topic sa RisingWave.
  • Isang multi-way streaming join ang ipinapahayag sa SQL at tuloy-tuloy na mina-materialize sa loob ng RisingWave.
  • Mula sa RisingWave, pini-persist ang resulta bilang native Apache Iceberg table sa isang S3-compatible object store gaya ng MinIO.
  • Kino-query ng mga engine gaya ng Spark, Trino, at DuckDB ang parehong Iceberg table sa pamamagitan ng open REST catalog. Bakit Streaming Iceberg Table gamit ang RisingWave?
  • [ 1 ] Mga batch-first workflow:
  • Mga periodic job, stale join, at mabibigat na pipeline.
  • Magkahiwalay na ETL tool para magsulat sa Iceberg.
  • [ 2 ] RisingWave + mga streaming Iceberg table:
  • Tuloy-tuloy na ina-update na mga join at aggregate sa RisingWave MV.
  • Mga Iceberg snapshot na palaging “halos kasalukuyan.”
  • Isang RisingWave pipeline na nagsisilbi sa real-time dashboard at offline analytics.
  • Layunin: Gawing parang database ang Iceberg sa pamamagitan ng pagbibigay sa RisingWave ng pamamahala sa streaming pipeline at mga pagsusulat sa Iceberg.

Pangkalahatang Architecture

  • Ang ating end-to-end stack:
  • Kafka — event backbone para sa 7 logistics topic.
  • RisingWave (streaming database) — mag-ingest, mag-join, at mag-aggregate sa SQL; mamahala ng mga materialized view.
  • RisingWave Iceberg Table Engine + Lakekeeper — open REST catalog sa mga Iceberg table.
  • MinIO — S3-compatible object storage.
  • Pattern: Kafka → RisingWave → Iceberg sa MinIO → Mag-query mula sa anumang engine sa pamamagitan ng REST catalog. Mga logistics stream sa RisingWave at mga multi-way streaming join
  • Ang Pitong Logistics Stream sa RisingWave
  • Gumagamit ang ating halimbawa ng pitong Kafka topic na nagiging mga source sa RisingWave:
  • trucks — fleet inventory, capacity, kasalukuyang lokasyon.
  • driver — mga detalye ng driver at assigned_truck_id.
  • shipments — pinagmulan, destinasyon, timbang, truck binding.
  • warehouses — lokasyon at capacity ng warehouse.
  • route — route_id, truck_id, driver_id, ETD/ETA, distance_km.
  • fuel — mga refueling event (oras, litro, istasyon).
  • maint — history at mga gastos sa maintenance.
  • Itinuturing ng RisingWave ang bawat isa bilang streaming table na handang i-join gamit ang simpleng PostgreSQL-style SQL. Pattern 1: Multi-Way Streaming Join sa RisingWave
  • Sa RisingWave, ipinapahayag natin ang pangunahing logistics logic bilang isang multi-way streaming join.
  • LEFT JOIN drivers → trucks upang manatiling nakikita ang mga hindi tumugmang driver.
  • JOIN shipments upang ilakip ang workload at mga destinasyon.
  • JOIN warehouses upang maisama ang capacity at lokasyon.
  • JOIN route para sa ETD/ETA at distansya.
  • JOIN fuel at maint para sa mga signal ng gastos at reliability.
  • Nagiging logistics_joined_mv ito — isang tuloy-tuloy na ina-update at denormalized na logistics record para sa bawat truck/driver/route sa loob ng RisingWave.

Mga Fleet KPI, native Iceberg table, at cross-engine read

Pattern 2: Fleet KPI View sa RisingWave

  • Sa ibabaw ng joined MV, nagtatakda tayo ng isa pang RisingWave MV para sa mga fleet KPI:
  • Paggamit ng capacity (%) sa bawat truck.
  • Kabuuang gastos sa fuel at maintenance sa bawat truck.
  • Pinagsamang kabuuang operational cost.
  • Kasalukuyang konteksto ng route (ID, ETD, ETA, distance_km).
  • Mga detalye ng kaugnay na driver. Ang overview sa RisingWave ay nagiging live fleet performance table — para sa Grafana at mga operational dashboard. Pattern 3: Pag-stream sa Native Iceberg mula sa RisingWave
  • Sa halip na custom writer service:
  • [ 1 ] Itinatakda natin ang logistics_joined_iceberg bilang native Iceberg table na pinamamahalaan ng RisingWave.
  • [ 2 ] Ginagaya ng schema ang logistics_joined_mv.
  • [ 3 ] Isang maliit na config sa RisingWave ang kumokontrol kung gaano kadalas kino-commit ang mga streaming change bilang Iceberg snapshot. Pattern 4: Mga Cross-Engine Read sa pamamagitan ng REST Catalog
  • Kapag ginawa ng RisingWave ang Iceberg table at inirehistro ito sa Lakekeeper REST catalog:
  • [ 1 ] Inilalakip ng Spark ang lakekeeper bilang catalog
  • [ 2 ] Maaaring gamitin ng Trino / DuckDB / Dremio ang kanilang mga Iceberg connector upang basahin ang parehong table.
  • [ 3 ] Nakikita ng lahat ng engine ang parehong Iceberg data na tuloy-tuloy na ina-update ng RisingWave.
  • Walang mga kopya at walang proprietary table format — Iceberg lamang na isinulat ng RisingWave.

Mula local laptop hanggang production cluster: mga opsyon sa deployment

  • Mga Opsyon sa Deployment: Mula Laptop hanggang Cluster
  • [ 1 ] Local (para sa pag-aaral at prototyping):
  • Patakbuhin ang RisingWave, Kafka, MinIO, at Lakekeeper gamit ang Docker.
  • Perpekto para sa pag-eksperimento sa mga streaming join at Iceberg table sa iyong laptop.
  • [ 2 ] Production (para sa mga totoong workload):
  • I-deploy ang RisingWave at ang iba pang bahagi ng stack sa pamamagitan ng Kubernetes + Helm.
  • Gumamit ng mga storage class, resource limit, at persistence na angkop sa iyong environment.
  • Parehong SQL at mga pattern sa RisingWave — mas matibay, scalable, at automated lamang. Pagpapasimple sa Tradisyonal na Iceberg Stack
  • Madalas kailangan sa mga tradisyonal na Iceberg deployment ang:
  • Isang hiwalay na stream processing engine.
  • Mga standalone Iceberg writer job.
  • Mga external compaction at maintenance workflow.
  • Karagdagang glue upang panatilihing magkakatugma ang mga catalog, writer, at storage.
  • Sa RisingWave:
  • [ 1 ] Pinangangasiwaan ng streaming database ang ingestion, mga join, materialized view, at pagsusulat sa Iceberg.
  • [ 2 ] Pinananatiling ganap na open at interoperable ng REST catalog + MinIO ang lahat.
  • Mas kaunting moving part at mas mababang operational overhead. Reference architecture gamit ang RisingWave
  • Isipin ang system bilang tatlong layer na nakasentro sa RisingWave:
  • [ 1 ] Mga Stream → Mga RisingWave Table.
  • Nagiging mga streaming table sa RisingWave ang mga Kafka topic.
  • [ 2 ] Mga Table → Mga RisingWave Materialized View.
  • Nagiging live MV ang mga streaming join at aggregate (logistics_joined_mv, truck_fleet_overview).
  • [ 3 ] Mga View → Mga Streaming Iceberg Table.
  • Ginagawang streaming Iceberg table ng RisingWave ang isang MV gamit ang maliit na config at isang INSERT....SELECT.
  • Kapag itinuring mo ang RisingWave bilang “streaming SQL + Iceberg engine,” maaari mong gamitin muli ang modelong ito sa maraming domain. Mga Reusable Pattern Lampas sa Logistics
  • Naaangkop ang RisingWave + Iceberg pattern sa:
  • E-commerce: mga order, inventory, pricing, mga customer event.
  • FinTech: mga transaction, balance, risk signal.
  • Industrial IoT: mga machine, sensor, alert, maintenance.
  • Telecom: mga session, paggamit, QoS metric.
  • Saanman may maraming real-time stream at pangangailangan para sa open at pangmatagalang storage, maaari mong gamitin ang RisingWave MV at Iceberg table sa parehong paraan. Mga Pangunahing Punto (RisingWave + Iceberg)
  • Isang reference architecture na pinagsasama ang Kafka, RisingWave, REST catalog, MinIO, at Iceberg.
  • Mga praktikal na pattern: multi-way streaming join, KPI view, at native Iceberg write mula sa RisingWave.
  • Magkaroon ng real-time logistics analytics nang walang custom writer, ad-hoc compaction job, o mahigpit na vendor lock-in.