การใช้งาน [CREATE VIEW] ของ Amazon Athena

2022.07.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

สวัสดีครับ ผมต้า วันนี้เราจะมาแนะนำการ CREATE VIEW ของ Amazon Athena กันครับ

Views คือ?

ในส่วนของ Data จะมีส่วนที่เรียกว่า Tables และ Views
อย่างที่เราทราบกัน Tables คือตารางข้อมูลที่ประกอบด้วย rows และ columns ใช้สำหรับการจัดระเบียบข้อมูล

ส่วน Views คือ virtual/logical table เป็นตารางข้อมูลที่เราดึงข้อมูลจาก Tables ออกมาให้ดูได้ง่ายขึ้น เป็นข้อมูลที่เราอยากจะดู(View)นั่นเอง

CREATE VIEW

โครงสร้างการเขียน

โค้ดด้านล่างนี้คือโครงสร้างการเขียนที่ใช้การสร้าง View ครับ

CREATE [ OR REPLACE ] VIEW view_name AS query

ตัวอย่าง CREATE VIEW

เหมือน SQL ทั่วไปครับ

CREATE VIEW test AS
SELECT
orderkey,
orderstatus,
totalprice / 2 AS half
FROM orders
REPLACE VIEW worker AS
SELECT
ID,
name,
salary /0.35 AS salaryUSD 
FROM orders

หรือเราสามารถใช้คำสั่ง CREATE OR REPLACE VIEW เพื่อทำการอัพเดท View ที่มีอยู่ หรือสร้างขึ้นใหม่ถ้าไม่มีได้

โดยหากอยากทราบรายละเอียดเพิ่มเติมเกี่ยวกับ CREATE VIEW สามารถดูได้ที่ลิ้งค์ด้านล่าง

ลองสร้าง View ดูจริงๆ

วิธีการสร้าง View จาก Athena console มีอยู่ 2 วิธีครับ

1.วิธี Run DDL ของ CREATE VIEW

เราจะ RUN โค้ดตามที่เห็นในภาพ เพื่อสร้าง View

2.วิธี CREATE VIEW จากผลลัพท์ของการ Run query

วิธีนี้คือวิธีที่เราจะนำผลลัพท์ที่ได้จาก query มาทำใหม่ขึ้นมาเป็น View ครับ โดยผมจะใช้คำสั่ง Select เพื่อดึงข้อมูลออกมาโชว์

จากนั้นเลือก Create และ View from query

แล้วจะขึ้นหน้าต่างให้เราสร้าง View จากผลลัพท์ใน query ได้ครับ

โดยเราสามารถสังเกตผลลัพท์ที่เราสร้างขึ้นได้ตรง Views ขวาล่าง

เกร็ดความรู้อื่นๆ

เราสามารถสร้าง View จาก View ได้

เหมือนกับ Table ทั่วไป เราสามารถสร้าง View จาก View ได้ และทำงาน query ได้ปกติ

Glue Data Catalog จากมองเห็นเป็นยังไง

ในตาราง Tables นั้น จะไม่มีข้อมูลในส่วน Location และส่วน Classification จะขึ้นว่า Unknown ครับ

และเมื่อเราเข้าไปดูรายละเอียดจะเป็นตามภาพด้านล่างนี้ ในส่วน Comment จะเขียนว่า Presto View ซึ่งทำให้เราทราบได้ว่า Glue ได้ทำการเข้าใจว่าสิ่งที่เราทำเป็นการ Presto

ถ้าเรากำหนด Location ของ job ใน Glue จะเป็นยังไง?

เราสามารถกำหนด Location ของ job ได้ แต่เนื่องจาก Classification เป็น Unknown ทำให้จะเกิด error ขึ้น เมื่อทำการ Run

แถมท้าย

เป็นยังไงกันบ้างครับ กับการ CREATE VIEW ของ Amazon Athena ส่วนตัวผมคิดว่ามันเป็นอะไรที่ค่อนข้างสะดวกมากที่เราสามารถนำผลลัพท์ใน query มาทำเป็น view ได้ เพราะจะทำให้เราได้เห็นก่อนว่าจะมีข้อมูลอะไรที่ถูกใส่ลงไป ทำให้ลด human error ลงไปได้เยอะครับ

การอัพเดท data ของ data lake จำเป็นต้องใช้เวลา หากเราสามารถอ้างอิง View จากแอปพลิเคชันได้ ทำให้เราสามารถ maintenance ได้ทันทีจากข้อมูลการ swap View ที่อ้างอิงจาก Table แล้วนั่นก็ทำให้ เราสามารถ clone, EL job หรือ เพิ่ม partition ได้โดยไม่ต้องกังวลเกี่ยวกับเวลาที่ต้องใช้ในการอัปเดต tables

บทความที่เกี่ยวข้อง