# Spark 4.3.0 ออกแล้ว Real-Time Mode แบบ stateful, SCD Type 2 และเลิกรองรับ Python 3.10

> Spark 4.3.0 ออก 30 ต.ค. 2026 มี Real-Time Mode แบบ stateful หน่วงราว 100 มิลลิวินาที Auto CDC แบบ SCD Type 2 และตัดสนับสนุน Python 3.10 ผู้ดูแลต้องเตรียมอัปเกรด

- ประเภท: ข่าว · หมวด: Data & Analytics
- เผยแพร่: 2026-11-05T06:19:00.000Z · อัปเดต: 2026-11-05T06:19:00.000Z
- โดย: กองบรรณาธิการ THAI DATA, THAI DATA IT BUSINESS ENTERPRISE
- ที่มา: https://thaidata.co.th/data/apache-spark-4-3-0-real-time-mode-scd-type-2/

## สรุปประเด็นสำคัญ

- Apache Spark ประกาศ **Spark 4.3.0** เมื่อ **30 ตุลาคม 2026** เป็นรุ่นที่ 4 ของสาย 4.x แก้ Jira กว่า **1,100 รายการ** จากผู้ร่วมพัฒนากว่า **210 คน** และเริ่มรอบออกฟีเจอร์ **รายไตรมาส**
- Real-Time Mode ของ Structured Streaming รองรับงานแบบ stateful คือ streaming aggregation, dropDuplicates และ transformWithState โดยมีความหน่วงปลายทางถึงปลายทาง **ราว 100 มิลลิวินาที** และเอาป้าย Experimental ออกแล้ว
- Spark Declarative Pipelines เพิ่ม **Auto CDC แบบ SCD Type 2** ผ่าน Python, SQL และ Spark Connect เพื่อเก็บประวัติการเปลี่ยนแปลงของแต่ละระเบียน
- SQL เพิ่ม **JSON_TABLE**, ฟังก์ชันจัดการ VARIANT, ANSI UNNEST และ **ASOF JOIN** (ปิดไว้เป็นค่าเริ่มต้น) ส่วน timestamp ระดับนาโนวินาทีเป็นรุ่นพรีวิว
- รุ่นนี้ **เลิกรองรับ Python 3.10** ขึ้นขั้นต่ำ NumPy เป็น 1.23.2 และ Docker image เริ่มใช้ Ubuntu 26.04 กับ Python 3.14 เป็นค่าเริ่มต้น ทีมที่รัน PySpark ต้องตรวจก่อนอัปเกรด

Apache Spark ประกาศ Spark 4.3.0 เมื่อวันที่ 30 ตุลาคม 2026 เป็นรุ่นที่ 4 ของสาย 4.x ที่แก้ Jira กว่า 1,100 รายการจากผู้ร่วมพัฒนากว่า 210 คน จุดเด่นคือ Real-Time Mode ของ Structured Streaming รองรับงาน stateful ความหน่วงราว 100 มิลลิวินาที และ Auto CDC แบบ SCD Type 2 ส่วนทีมที่ใช้ PySpark ต้องย้ายพ้น Python 3.10

## Spark 4.3.0 เพิ่มอะไรให้งานสตรีมมิง

หมายเหตุประจำรุ่นระบุว่า Real-Time Mode รองรับคำสั่งแบบ stateful แล้ว ได้แก่ streaming aggregation, dropDuplicates และ transformWithState ด้วยความหน่วงปลายทางถึงปลายทางราว 100 มิลลิวินาที ผ่าน API Structured Streaming ที่คุ้นเคย โดยเบื้องหลัง Spark เพิ่มการจัดตารางงานแบบ concurrent stage และ pipelined shuffle ให้ขั้นผู้ผลิตกับขั้นผู้บริโภคทำงานพร้อมกัน

| หัวข้อ | สิ่งที่เปลี่ยนใน Spark 4.3.0 |
| --- | --- |
| Real-Time Mode | รองรับ streaming aggregation, dropDuplicates, transformWithState (Scala/Java) และเอาป้าย Experimental ออก |
| Shuffle | เพิ่ม PipelinedShuffleDependency และ StreamingShuffleManager ที่ใช้โปรโตคอลแบบ Netty |
| ความถูกต้อง | แก้ dropDuplicates ที่ใช้ watermark หลังรีสตาร์ตคิวรี (SPARK-59315) |
| การล้างสถานะ | เพิ่มการล้าง state ทีละส่วนสำหรับ dropDuplicates ในสตรีม |

![หน้าหมายเหตุประจำรุ่น Spark 4.3.0 ของ Apache Spark](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/apache-spark-4-3-0-real-time-mode-scd-type-2/spark-4-3-0-release-notes.webp?v=3396eed1) _(ภาพ: Apache Spark (ภาพหน้าจอ))_

## Auto CDC แบบ SCD Type 2 และ SQL ใหม่ใน Spark 4.3.0

Spark Declarative Pipelines ได้ Auto CDC แบบ SCD Type 2 ผ่าน Python, SQL และ Spark Connect ทำให้ไปป์ไลน์เก็บประวัติว่าแต่ละระเบียนเปลี่ยนอย่างไรตามเวลา แทนการเขียนทับค่าล่าสุด

ฝั่ง SQL หมายเหตุประจำรุ่นระบุสิ่งที่เพิ่มดังนี้

1. **JSON_TABLE** สำหรับแปลงเอกสาร JSON เป็นตาราง
2. **ฟังก์ชัน VARIANT** เช่น variant_set, variant_insert และ variant_delete สำหรับจัดการเอกสารซ้อนในตัว
3. **ANSI UNNEST** ในส่วน FROM
4. **ASOF JOIN** สำหรับจับคู่เหตุการณ์กับข้อมูลที่รู้ ณ เวลานั้น ปิดไว้เป็นค่าเริ่มต้น ต้องเปิดด้วย spark.sql.join.asofJoin.enabled
5. **timestamp ระดับนาโนวินาที** TIMESTAMP_NTZ(p) และ TIMESTAMP_LTZ(p) เป็นรุ่นพรีวิว
6. **time travel** ด้วยไวยากรณ์ @ บนชื่อตาราง ทั้งแบบเวอร์ชันและเวลา

Spark Connect เพิ่ม REST endpoint สำหรับดูเซสชันและการทำงาน, operation ID สำหรับตามรอยคำขอตั้งแต่ต้นจนจบ และไดรเวอร์ JDBC ที่ครบขึ้น ส่วนโหมดเครื่องเดียว (local) มีตัวเลือกที่ต้องเปิดเองเพื่อให้คิวรีข้อมูลขนาดเล็กเร็วขึ้น

ฝั่งการดูแลระบบ Spark 4.3.0 เพิ่มแถบสรุปสถิติคิวรีในแท็บ SQL เปิดข้อมูลคอนฟิกที่ถูกแก้และคำอธิบายโหนดผ่าน SQL REST API และให้ Spark History Server โหลด event log ทีละไฟล์ตามต้องการ ซึ่งช่วยทีมที่ต้องไล่ปัญหางานที่รันนานหรือคลัสเตอร์ที่มี log จำนวนมาก

## สิ่งที่ต้องตรวจก่อนอัปเกรด Spark 4.3.0

รุ่นนี้มีการเปลี่ยนที่กระทบสภาพแวดล้อมรันงานโดยตรง

| รายการ | การเปลี่ยนแปลง |
| --- | --- |
| Python | เลิกรองรับ Python 3.10 (SPARK-56889) |
| NumPy | ขั้นต่ำเป็น 1.23.2 (SPARK-56928) |
| Java | รองรับ DirectByteBuffer cleaner บน Java 26 |
| Docker image | ใช้ eclipse-temurin บน Ubuntu 26.04 กับ Python 3.14 เป็นค่าเริ่มต้น |
| Kubernetes | allowPrivilegeEscalation เป็น false ใน driver และ executor โดยค่าเริ่มต้น และ spark.kubernetes.executor.useDriverPodIP เปิดโดยค่าเริ่มต้น |
| YARN และงานอื่น | รองรับ spark.task.cpus แบบเศษส่วน และตั้ง -XX:OnOutOfMemoryError ได้ |

![หน้าข่าว Spark 4.3.0 released บนเว็บไซต์ Apache Spark ลงวันที่ 30 ตุลาคม 2026](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/apache-spark-4-3-0-real-time-mode-scd-type-2/spark-4-3-0-released-news.webp?v=8c6700cb) _(ภาพ: Apache Spark (ภาพหน้าจอ))_

![หน้าแรกของเว็บไซต์ Apache Spark](https://thaidata-co-th.s3.ap-southeast-1.amazonaws.com/thaidata.co.th/images/articles/apache-spark-4-3-0-real-time-mode-scd-type-2/spark-apache-homepage.webp?v=5b6de223) _(ภาพ: Apache Spark (ภาพหน้าจอ))_

## ทำไม Spark 4.3.0 จึงสำคัญ

หมายเหตุประจำรุ่นระบุว่า 4.3.0 เป็นจุดเริ่มของรอบออกฟีเจอร์รายไตรมาส ทีมข้อมูลจึงควรคาดว่ารุ่นถัดไปจะมาเร็วกว่าเดิม และควรวางรอบอัปเกรดให้ตามได้ ส่วนการที่ Real-Time Mode เอาป้าย Experimental ออก เป็นสัญญาณว่าโครงการมองว่า API นี้พร้อมสำหรับงานใช้จริงมากขึ้น แต่ตัวเลข 100 มิลลิวินาทีเป็น "ระดับของความหน่วง" ตามข้อความในหมายเหตุ ไม่ใช่ค่ารับประกันสำหรับทุกงาน ควรวัดกับข้อมูลและคลัสเตอร์ของตัวเอง

## สิ่งที่ทีมข้อมูลในองค์กรไทยควรทำ

1. ตรวจเวอร์ชัน Python และ NumPy ของงาน PySpark ทุกตัว ถ้ายังใช้ Python 3.10 ให้ย้ายก่อนอัปเกรด
2. ทดสอบงานบน Kubernetes ว่าทำงานได้เมื่อ allowPrivilegeEscalation เป็น false และ image ฐานเปลี่ยนเป็น Ubuntu 26.04
3. ถ้ามีงานสตรีมที่ต้องการความหน่วงต่ำ ให้ลองทดสอบ Real-Time Mode กับ aggregation หรือ dropDuplicates ในสภาพแวดล้อมแยก และวัดความหน่วงจริง
4. ถ้าต้องเก็บประวัติการเปลี่ยนของข้อมูลลูกค้าหรือสินค้า ลองประเมิน Auto CDC แบบ SCD Type 2 กับไปป์ไลน์ที่เขียนเองอยู่
5. อ่านรายการ Jira ใน Spark 4.3.0 ที่เกี่ยวกับฟีเจอร์ที่ใช้อยู่ก่อนอัปเกรด และวางแผนย้อนกลับ

ติดตามข่าวข้อมูลและแพลตฟอร์มข้อมูลอื่น ๆ ได้ที่[หมวด Data](/data/)

## บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง

ทีมข้อมูลที่ต้องการรัน Spark กับข้อมูลที่ต้องอยู่ในประเทศ ต้องมีโครงสร้างพื้นฐานที่ควบคุมได้ [Private Cloud](https://thaidata.cloud/private-cloud/) ของ THAI DATA CLOUD เก็บข้อมูลไว้ในประเทศ รองรับ PDPA มีทีมวิศวกรไทยดูแล 24/7 และ SLA 99.9% (THAI DATA CLOUD เป็นผู้ดำเนินงานเว็บไซต์นี้)

## คำถามที่พบบ่อย

### Spark 4.3.0 ออกเมื่อไรและมีอะไรใหม่?

Spark 4.3.0 ออกเมื่อ 30 ตุลาคม 2026 จุดเด่นคือ Real-Time Mode แบบ stateful, Auto CDC แบบ SCD Type 2 ใน Declarative Pipelines, Spark Connect REST endpoints, ฟังก์ชัน SQL ใหม่อย่าง JSON_TABLE และ ASOF JOIN และการเลิกรองรับ Python 3.10

### Real-Time Mode ใน Spark 4.3.0 ทำอะไรได้?

Real-Time Mode ใน Spark 4.3.0 รองรับ streaming aggregation, dropDuplicates และ transformWithState โดยความหน่วงปลายทางถึงปลายทางอยู่ราว 100 มิลลิวินาที ตามหมายเหตุประจำรุ่น และไม่มีป้าย Experimental อีกแล้ว ใช้ API Structured Streaming เดิม

### อัปเกรดเป็น Spark 4.3.0 ต้องระวังอะไร?

ต้องตรวจเวอร์ชัน Python เพราะ Spark 4.3.0 เลิกรองรับ Python 3.10 และต้องใช้ NumPy 1.23.2 ขึ้นไป ฝั่ง Kubernetes ค่าเริ่มต้นเปลี่ยนเป็น allowPrivilegeEscalation เป็น false และ Docker image ใช้ Ubuntu 26.04 กับ Python 3.14

### Spark 4.3.0 มี ASOF JOIN ให้ใช้เลยหรือไม่?

มี แต่ปิดไว้เป็นค่าเริ่มต้น ต้องเปิดด้วย spark.sql.join.asofJoin.enabled ตามหมายเหตุประจำรุ่น ส่วนตัวดำเนินการ BIN BY ก็เปิดผ่านคอนฟิก spark.sql.binByRelationOperator.enabled เช่นกัน


## แหล่งอ้างอิง

- [Spark 4.3.0 released](https://spark.apache.org/news/spark-4-3-0-released.html) — Apache Spark
- [Spark Release 4.3.0](https://spark.apache.org/releases/spark-release-4-3-0.html) — Apache Spark
