วิธีการเชื่อมต่อจาก QuickSight ไปยัง Athena

เราสามารถตั้งค่าการเชื่อมต่อจาก QuickSight ไปยัง Athena และสร้าง Dataset ใน QuickSight ขึ้นมาเพื่อนำข้อมูลจาก Athena มาแสดงผลใน QuickSight ได้ นอกจากนี้เรายังสามารถปรับแต่งการแสดงผลของข้อมูลตามที่เราต้องการได้อีกด้วย

สวัสดีครับ ครั้งนี้ผมจะมาอธิบายเกี่ยวกับ วิธีการเชื่อมต่อจาก QuickSight ไปยัง Athena ต่อจากบทความ การรัน SQL ไปยังไฟล์ใน S3 ด้วย Glue กับ Athena เพื่อดึงข้อมูลจาก Athena มาแสดงผลที่ QuickSight ครับ

เป้าหมายในการทำ

Service ที่ใช้ในบทความนี้คือ:

  • Amazon S3
    • Buckets (2)
  • AWS Identity and Access Management (IAM)
    • Roles (2)
    • Policies
  • Amazon EC2
    • Key Pairs
    • Instance
    • Security Groups
  • AWS Glue
    • Databases
      • Tables
    • Crawlers
  • Amazon Athena
    • Workgroups
  • QuickSight

โปรแกรมที่ใช้ในบทความนี้คือ:

  • PuTTY

สิ่งที่ต้องมี

ขั้นตอนอาจจะซับซ้อนนิดนึง แนะนำให้เพื่อนๆ ลองอ่านรายละเอียดให้ดีก่อนลงมือทำในแต่ละขั้นตอน เพื่อป้องกันความผิดพลาดนะครับ

ก่อนอื่น ให้ทำการรัน SQL ไปยังไฟล์ใน S3 ด้วย Glue กับ Athen เตรียมไว้ โดยดูขั้นตอนได้ที่ด้านล่างนี้ครับ

เมื่อเตรียมการรัน SQL เรียบร้อยแล้วให้ทำการลงทะเบียน QuickSight ตามขั้นตอนด้านล่างนี้ครับ
! สำหรับผู้ใช้งานที่มีบัญชีอยู่แล้ว ข้ามขั้นตอนนี้ไปได้เลยครับ

แนะนำเพิ่มเติม: ขั้นตอนของ QuickSight access to AWS services แนะนำให้ทำการตั้งค่าตามรูปด้านล่างนี้ครับ

เปิดการใช้งาน Athena ใน QuickSight

เมื่อสร้างบัญชี QuickSight แล้ว สมมติว่าตอนนี้ผมยังไม่ได้เปิดใช้งาน Athena ทีนี้ผมก็จะทำการเปิดใช้งานก่อนครับ ! ถ้าพร้อมแล้วเรามาเริ่มกันเลยครับ

ก่อนอื่นเราต้องเปลี่ยนรีเจี้ยนจากSingaporeให้เป็นUS East (N.Virginia)
มาที่มุมขวาบน คลิกที่ Account ของเรา เลือกSingapore >ตามด้วยUS East (N.Virginia)

คลิกที่ Account ของเราเหมือนเดิม แล้วเลือกManage QuickSight

มาที่เมนูด้านซ้าย เลือกSecurity & permissionsและมาที่ด้านขวา คลิกManage

ติ๊ก ▢ Amazon Athena (เมื่อคลิกแล้ว เครื่องหมาย✅ยังจะไม่แสดงให้เห็น และจะแสดงหน้า pop-up ขึ้นมา)

คลิกNext

เลือก S3 Bucket ตามตารางตัวอย่างด้านล่างนี้

S3 Bucket Write permission for Athena Workgroup Description
tinnakorn-test-athena-result S3 Bucket ที่สร้างขึ้นเพื่อบันทึกข้อมูลการรันคำสั่งของ Athena
tinnakorn-test-s3 S3 Bucket ที่สร้างขึ้นสำหรับใช้กับ EC2

เมื่อเลือกเสร็จเรียบร้อยแล้วให้ตรวจสอบอีกครั้ง เพราะว่าถ้าติ๊กผิดจะทำให้เกิด Error ในขั้นตอนอื่นๆ ได้
จากนั้นคลิกปุ่มFinishได้เลยครับ

ถ้าไม่มีข้อผิดพลาด ก็จะแสดงหน้าจอแบบนี้ จากนั้นคลิกปุ่มSaveได้เลย

เมื่อกลับมาหน้า Security & permissions แล้ว จะแสดงหน้าจอแบบนี้ การตั้งค่าเปิดการใช้งาน Athena ใน QuickSight ก็เสร็จเรียบร้อยแล้วครับ

การเชื่อมต่อจาก QuickSight ไปยัง Athena

ก่อนอื่นทำการเปลี่ยนรีเจี้ยนจากN.Virginiaกลับมาเป็นAsia Pacific Singaporeเหมือนเดิม เพื่อเตรียมทำการเชื่อมต่อ Athena จาก QuickSight

มาที่มุมขวาบน คลิกที่ Account ของเรา เลือกN.Virginia >ตามด้วยAsia Pacific (Singapore)

มาที่เมนูด้านซ้าย เลือกDatasetsและมาที่มุมขวาบน คลิกNew dataset

เลือกAthena

การตั้งค่า New Athena data source:
» ตั้งชื่อ Data source name เช่นtinnakorn-test
» เลือก Athena workgroup เช่นtinnakorn-test ⌵
» คลิกปุ่มValidate connectionเพื่อเชื่อมต่อกับ Athena workgroup

ถ้าเกิด Error ให้ย้อนกลับไปดูการตั้งค่าที่ การเลือก S3 Bucket แล้วกลับมาทำการเชื่อมต่ออีกครั้งครับ
เมื่อสามารถเชื่อมต่อกับ Athena workgroup ได้แล้ว คลิกที่Create data sourceได้เลยครับ

เลือก Table ที่สร้างไว้ใน Database ของ AWS Glue จากนั้นคลิกSelect

เลือก ◉Import to SPICE fot quicker analytics และคลิกEdit/Preview data

เมื่อแสดงหน้าหน้าจอแบบนี้แล้ว มาที่มุมขวาบน คลิกSeva & publishและPublish & visualize

เมื่อแสดงหน้าจอแบบนี้ได้แล้ว การตั้งค่าของขั้นตอนนี้ก็เสร็จเรียบร้อยครับ

ทดสอบการใช้งาน QuickSight โดยใช้ Dataset ของ Athena

มาที่ Visual types ด้านล่างซ้าย เลือกไอคอนTable:

คลิกที่datetimeค้างไว้ แล้วลากไปวางในช่องValue
ในส่วนของdistanceก็ให้ลากไปวางในช่องValueเหมือนกันครับ

เมื่อทำเสร็จแล้ว ก็จะได้ Table ตามรูปภาพครับ

ทีนี้ผมจะเพิ่ม Visual ขึ้นมาเพื่อให้เห็นการใช้งานที่หลากหลายมากขึ้นครับ
มาที่มุมซ้ายบน คลิก+ AddและเลือกAdd visual

มาที่ Visual types ด้านล่างซ้าย เลือกไอคอนLine chart:

ในส่วนนี้ให้คลิกที่datetimeค้างไว้ แล้วลากไปวางในช่องX axis
และลากdistanceไปวางในช่องValueครับ

เปลี่ยนdatetimeให้เป็นdatetime (Minute)ดังนี้:
» คลิกที่datetime ⌵ในช่อง X axis
» เลือกAggregate: Day >
» เลือกMinute

เมื่อเปลี่ยนเสร็จแล้ว จะแสดงหน้าจอแบบนี้ X axis:datetime (Minute) ⌵

เมื่อตั้งค่าเสร็จแล้ว ดูที่ Visual: Line chart ของเรา
จะเห็นว่าแสดงเป็นกราฟในรูปแบบ Line chart ครับ

เพียงเท่านี้ เราก็สามารถนำข้อมูลที่ได้มาจากการเชื่อมต่อกับ Athena มาแสดงผลใน QuickSight ได้เป็นที่เรียบร้อยแล้วครับ

การลบ AWS Resource ที่สร้างขึ้นในบทความนี้

การลบฟังก์ชันที่ได้สร้างขึ้นใน Service ต่างๆ

ลบตามขั้นตอนดังนี้:

  • Amazon EC2
    • Key Pairs
    • Instance
    • Security Groups
  • Amazon Athena
    • Workgroups
  • AWS Glue
    • Databases
      • Tables
    • Crawlers
  • Amazon S3
    • Buckets (2)
  • AWS Identity and Access Management (IAM)
    • Roles (2)
    • Policies
  • QuickSight

การลบฟังก์ชันใน Service ต่างๆ ถ้าเราไม่รู้ลำดับของการลบฟังก์ชันก็จะทำให้เกิด Error ในขณะลบ หรือไม่สามารถลบได้นั่นเอง เช่น ถ้าทำการลบ Security Group ที่กำลังเชื่อมต่ออยู่กับ EC2 โดยที่ไม่ Terminate EC2 ก่อน ก็จะไม่สามารถลบ Security Group ได้ เป็นต้น ดังนั้นแนะนำให้ลบตามขั้นตอนที่ผมเรียงไว้ได้เลยครับ

การ Terminate Instance, ลบ Key Pair และลบ Security Group ใน EC2

ดูตัวอย่างการลบที่นี่: การ Terminate Instance, ลบ Key Pair และลบ Security Group ใน EC2

การลบ Workgroups ใน Amazon Athena

ดูตัวอย่างการลบที่นี่: การลบ Workgroups ใน Amazon Athena

การลบ Crawlers และ Databases ใน AWS Glue

ดูตัวอย่างการลบที่นี่: การลบ Crawlers และ Databases ใน AWS Glue

การลบ Buckets ใน Amazon S3

การลบ Buckets นี้ต้องลบออกทั้งหมด 2 อัน ซึ่งจะมี Bucket ที่ใช้กับ EC2 และ Athena ครับ

ดูตัวอย่างการลบที่นี่: การลบ Buckets ใน Amazon S3

การลบ Role และ Policies ใน IAM

การลบ Role นี้ต้องลบออกทั้งหมด 2 อัน ซึ่งจะมี Role ที่ใช้กับ EC2 และ AWS Glue ครับ

ดูตัวอย่างการลบที่นี่: การลบ Role และ Policies ใน IAM

การลบบัญชี QuickSight ใน AWS

ดูตัวอย่างการลบที่นี่: การลบบัญชี QuickSight ใน AWS

สรุป

การสาธิตนี้ผมจะเน้นมาที่การเชื่อมต่อจาก QuickSight ไปยัง Athena โดยตั้งค่าให้ QuickSight สามารถเข้าถึง Athena ได้ จากนั้นก็สร้าง Dataset ใน QuickSight โดยใช้มูลของ Table ใน AWS Glue ที่เชื่อมต่อกับ Athena workgroup และสร้าง Visual type: Table กับ Line chart ใน Dataset ขึ้นมาเพื่อทดสอบการแสดงผลของข้อมูลที่ดึงมาจาก Athena นั่นเอง

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

ดูรายละเอียดเพิ่มเติมได้ที่นี่ สอบถามเพิ่มเติมเกี่ยวกับ AWS คลิกที่นี่