สร้างการคำนวณที่มีประสิทธิภาพ

เมื่อข้อมูลเบื้องหลังที่คุณมีไม่สามารถให้ข้อมูลที่คุณต้องใช้ในการตอบคำถาม คุณสามารถสร้างฟิลด์ที่คำนวณเพื่อช่วยในการวิเคราะห์ได้

ในฟิลด์ที่คำนวณ คุณสามารถกำหนดค่าคงที่ฮาร์ดโค้ด (เช่น อัตราภาษี), ดำเนินการทางคณิตศาสตร์ที่ง่าย เช่น การลบหรือการคูณ (เช่น รายได้ลบต้นทุน), ใช้สูตรคณิตศาสตร์ที่ซับซ้อน, ดำเนินการทดสอบตรรกะ (IF/THEN, CASE), ทำการแปลงประเภท, ส่งนิพจน์ไปยังบริการภายนอก เช่น R และอื่นๆ อีกมากมาย

Tableau มีการคำนวณหลากหลายประเภท ดังนี้:

การคำนวณพื้นฐานและการคำนวณรวม: การคำนวณประเภทเหล่านี้สร้างมาเพื่อเป็นส่วนหนึ่งของการค้นหาในแหล่งข้อมูลทั้งหมด และทำการคำนวณในฐานข้อมูล โดยทั่วไปแล้วการคำนวณพื้นฐานและการคำนวณรวมสามารถปรับขนาดได้ดี และยังมีหลากหลายเทคนิคการปรับแต่งฐานข้อมูลที่สามารถช่วยปรับปรุงประสิทธิภาพให้กับการคำนวณเหล่านี้ได้

การคำนวณตาราง: การคำนวณเช่นจะดำเนินการคำนวณโดย Tableau ในชุดผลลัพธ์การค้นหา ซึ่งแม้จะหมายความว่า Tableau ต้องทำงานหนักขึ้น แต่โดยปกติแล้วการคำนวณตารางจะถูกใช้กับชุดระเบียนขนาดเล็กที่อยู่ในแหล่งข้อมูลดั้งเดิม หากประสิทธิภาพการคำนวณตารางมีปัญหา (อาจเป็นเพราะชุดผลลัพธ์ที่ส่งคืนไปยัง Tableau มีขนาดใหญ่มาก) แนะนำให้พุชข้อมูลบางส่วนของการคำนวณกลับไปยังเลเยอร์แหล่งข้อมูล ซึ่งหนึ่งในวิธีทำคือให้รวมข้อมูลแล้วดำเนินการคำนวณในข้อมูลแบบรวม

นิพจน์ระดับของรายละเอียด (LOD): นิพจน์ LOD สร้างมาเพื่อเป็นส่วนหนึ่งของการค้นหาในแหล่งข้อมูลทั้งหมด และทำการคำนวณในฐานข้อมูล โดยจะแสดงเป็น nested select ดังนั้นนิพจน์นี้จึงทำงานแบบขึ้นอยู่กับประสิทธิภาพของฐานข้อมูล การคำนวณตารางหรือการผสมผสานอาจทำงานได้ดีกว่านิพจน์ LOD หรือกลับกัน

หากคุณสงสัยว่านิพจน์ LOD เป็นสาเหตุที่ทำให้ประสิทธิภาพการทำงานช้า แนะนำให้คุณลองแทนที่ด้วยการคำนวณตารางหรือการผสมผสานข้อมูลเพื่อดูว่าประสิทธิภาพการทำงานดีขึ้นหรือไม่ ตัวอย่างเช่น ดูตัวอย่างที่ 2 ในคำสั่งการดำเนินการของ Tableau

นิพจน์ LOD อาจได้รับผลกระทบจากการลดจำนวนโดยการรวม ดังนั้นโปรดดู การสันนิษฐานความสมบูรณ์เชิงอ้างอิงสำหรับการรวมหากการค้นหาของคุณทำงานช้าเวลาที่คุณใช้นิพจน์ LOD

หากต้องการข้อมูลเพิ่มเติม โปรดดู เอกสารประกอบของ Tableau หัวข้อการทำความเข้าใจนิพจน์ระดับรายละเอียด (LOD)

ใช้พารามิเตอร์สำหรับการคำนวณแบบมีเงื่อนไข

หนึ่งในเทคนิคทั่วไปใน Tableau คือให้แสดงการควบคุมพารามิเตอร์เพื่อที่ผู้ใช้จะสามารถเลือกค่าที่กำหนดวิธีการคำนวณได้ โดยมากแล้ว หากต้องการให้ตัวเลือกที่เข้าใจง่ายแก่ผู้ใช้ วิธีที่เหมาะสมคือให้สร้างพารามิเตอร์เป็นประเภทสตริง แต่การคำนวณแบบตัวเลขจะทำงานได้เร็วกว่าการคำนวณแบบสตริงมาก ดังนั้นให้ใช้ประโยชน์จากฟีเจอร์ แสดงเป็น ของพารามิเตอร์: ซึ่งก็คือแสดงป้ายกำกับข้อความแต่ใช้ค่าจำนวนเต็มเบื้องหลังสำหรับตรรกะการคำนวณ หากต้องการข้อมูลเพิ่มเติม โปรดดู สร้างพารามิเตอร์

แปลงฟิลด์วันที่

ผู้ใช้มักจะมีข้อมูลวันที่ที่ไม่ได้จัดเก็บไว้ในรูปแบบวันที่แบบเนทีฟ เช่น วันที่อาจเป็นสตริงหรือเป็นเวลาประทับแบบตัวเลข คุณสามารถใช้ฟังก์ชัน DATEPARSE ได้หากข้อมูลของคุณรองรับ ซึ่งฟังก์ชันนี้สามารถใช้งานได้สำหรับการเชื่อมต่อไฟล์ Microsoft Excel และไฟล์ข้อความที่ไม่ใช่แบบเก่า, MySQL, Oracle, PostgreSQL และแหล่งข้อมูลการแยกข้อมูล Tableau ไม่เช่นนั้น ให้งแยกวิเคราะห์ฟิลด์เป็นสตริงวันที่ เช่น “2012-01-01” แนะนำให้ใช้สตริง ISO จะดีกว่าเนื่องจากสตริงประเภทนี้ไม่ได้เจาะจงตำแหน่ง จากนั้นส่งต่อค่าไปยังฟังก์ชัน DATE หากข้อมูลที่กำลังสร้างอยู่เป็นฟิลด์ตัวเลข การแปลงข้อมูลให้เป็นสตริงก่อนแล้วจึงแปลงเป็นวันที่นั้นถือเป็นวิธีที่ไม่มีประสิทธิภาพ ซึ่งจะดีกว่ามากหากปล่อยให้ข้อมูลไว้เป็นตัวเลขแล้วใช้ DATEADD กับค่าสัญพจน์วันที่ในการดำเนินการคำนวณ ประสิทธิภาพการทำงานที่เพิ่มขึ้นมานี้อาจส่งผลเป็นอย่างมากกับชุดข้อมูลขนาดใหญ่ หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันเหล่านี้ โปรดดู ฟังก์ชันวันที่

ใช้คำสั่งตรรกะ CASE

เมื่อทำงานกับคำสั่งตรรกะที่ซับซ้อน คำสั่ง CASE อาจทำงานได้เร็วกว่าคำสั่ง IF หรือ ELSEIF

อย่าลืมว่า ELSEIF นั้นเร็วกว่า ELSE IF เนื่องจาก IF ที่ซ้อนเข้ามาจะประมวลผลคำสั่ง IF ที่สองแทนที่จะรวมเข้าไปในการประมวลผลคำสั่งแรก

หากต้องการข้อมูลเพิ่มเติม โปรดดูเอกสารประกอบเรื่องการออกแบบเวิร์กบุ๊กที่มีประสิทธิภาพ

การวัดผลแบบรวม

หากมุมมองที่คุณสร้างทำงานช้า อย่าลืมตรวจสอบให้แน่ใจว่าคุณกำลังใช้การวัดผลแบบรวม เพราะหากเป็นข้อมูลแบบไม่รวม คุณอาจกำลังพยายามดูข้อมูลหลายแถวพร้อมกันอยู่ คุณสามารถลดจำนวนแถวได้ด้วยการรวมข้อมูล โดยทำได้ด้วยการเลือก การวิเคราะห์ > การวัดผลแบบรวม

เคล็ดลับการคำนวณ

คุณสามารถปรับปรุงประสิทธิภาพของการคำนวณได้หลากหลายวิธี

  • การแยกความต่างของค่านับเป็นหนึ่งในประเภทการรวมที่ช้าที่สุดในแทบทุกแหล่งข้อมูล ควรใช้การรวม COUNTD ให้น้อยที่สุด

  • การใช้พารามิเตอร์ที่สามารถส่งผลกระทบได้เป็นวงกว้าง (เช่น ในคำสั่ง SQL แบบปรับแต่งเอง) อาจส่งผลต่อประสิทธิภาพการแคชได้

  • การกรองในการคำนวณที่ซับซ้อนอาจส่งผลให้ดัชนีในข้อมูลทั้งหมดหายไป

  • ฟังก์ชันสคริปต์อย่าง RAWSQL และ SCRIPT_* สำหรับการรวมกับบริการภายนอกอาจทำงานช้า โดยเฉพาะอย่างยิ่งเมื่อมีค่าจำนวนมากที่จำเป็นต้องส่งกลับไปมาจากเซิร์ฟเวอร์ DBMS/R

  • ใช้ NOW เฉพาะเมื่อคุณจำเป็นต้องใช้รายละเอียดในระดับเวลาประทับ ใช้ TODAY สำหรับการคำนวณระดับวันที่

  • อย่าลืมว่าการคำนวณพื้นฐานทั้งหมดจะถูกส่งต่อไปยังข้อมูลเบื้องหลัง แม้แต่การคำนวณสัญพจน์อย่างสตริงป้ายกำกับก็ตาม หากคุณจำเป็นต้องสร้างป้ายกำกับ (เช่น สำหรับส่วนหัวของคอลัมน์) และข้อมูลของคุณมีขนาดใหญ่มาก ให้สร้างแหล่งข้อมูลข้อความที่ง่าย/ไฟล์ Excel ที่มีระเบียนเพียงรายการเดียวสำหรับเก็บป้ายกำกับเหล่านั้น เพื่อที่จะได้ไม่เพิ่มภาระให้แหล่งข้อมูลขนาดใหญ่

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ