การจัดการข้อมูลเอกสาร
ตลอดทั้งบทนี้ได้เรียนรู้เครื่องมือต่าง ๆ สำหรับทำงานกับข้อมูลเอกสารแบบ semi-structured ใน Postgres ในแบบฝึกหัดสุดท้ายนี้ จะนำเครื่องมือเหล่านั้นมาใช้ร่วมกันเพื่อสร้างชุดข้อมูลที่พร้อมสำหรับการวิเคราะห์ โดยจะทำงานกับตาราง nested_reviews ซึ่งมีโครงสร้างดังแสดงด้านล่าง

เพื่อช่วยให้เริ่มต้นได้สะดวก pandas ถูก import ไว้แล้วในชื่อ pd และมีการสร้าง connection object เก็บไว้ในตัวแปร db_engine แล้ว ขอให้โชคดี!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
NoSQL เบื้องต้น
คำแนะนำการฝึกหัด
- ใช้ operator
#>เพื่อดึงฟิลด์branchที่ซ้อนอยู่ในออบเจกต์locationจากคอลัมน์reviewในรูปแบบ JSON โดย alias ว่าbranch - ดึงฟิลด์
statementจากคอลัมน์reviewโดยใช้ operator->>และ alias ผลลัพธ์ว่าstatement - กรองผลลัพธ์ให้แสดงเฉพาะรายการที่มีตำแหน่งของ
reviewerเป็น'Australia'โดยใช้ฟังก์ชันjson_extract_path_text
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Extract fields from JSON, and filter by reviewer location
query = """
SELECT
review_id,
____ #> '{____, ____}' AS ____,
____ ->> '____' AS ____,
rating
FROM nested_reviews
WHERE ____(____, '____', '____') = 'Australia'
ORDER BY rating DESC;
"""
data = pd.read_sql(query, db_engine)
print(data)