เทคนิคการตรวจสอบข้อมูลยอดนิยมสำหรับ Analytics และเหตุผลที่คุณต้องการ
เผยแพร่แล้ว: 2022-12-19หมายเหตุบรรณาธิการ: บทความนี้เผยแพร่ครั้งแรกในบล็อก Iteratively เมื่อวันที่ 14 ธันวาคม 2020
ในตอนท้ายของวัน การวิเคราะห์ข้อมูลของคุณจะต้องได้รับการทดสอบเช่นเดียวกับโค้ดอื่นๆ หากคุณไม่ตรวจสอบความถูกต้องของโค้ดนี้—และข้อมูลที่สร้างขึ้น—ก็อาจมีค่าใช้จ่ายสูง (เช่น 9.7 ล้านดอลลาร์ต่อปี) ตามข้อมูลของ Gartner
เพื่อหลีกเลี่ยงชะตากรรมนี้ บริษัทต่างๆ และวิศวกรสามารถใช้เทคนิคการตรวจสอบข้อมูลเชิงรุกและเชิงรับจำนวนมาก เราขอแนะนำอย่างแรก เนื่องจากเราจะอธิบายด้านล่าง แนวทางเชิงรุกในการตรวจสอบข้อมูลจะช่วยให้บริษัทต่างๆ มั่นใจได้ว่าข้อมูลที่พวกเขามีอยู่สะอาดและพร้อมที่จะทำงานด้วย
เทคนิคการตรวจสอบข้อมูลเชิงรับและเชิงรุก: แก้ไขปัญหาข้อมูลก่อนที่จะกลายเป็นปัญหา
“การป้องกันเพียงหนึ่งออนซ์ก็คุ้มค่ากับการรักษาหนึ่งปอนด์” เป็นคำพูดโบราณที่เป็นจริงในเกือบทุกสถานการณ์ รวมถึงเทคนิคการตรวจสอบข้อมูลสำหรับการวิเคราะห์ อีกวิธีหนึ่งในการพูดก็คือ เป็นฝ่ายรุกดีกว่าตั้งรับ
วัตถุประสงค์ของการตรวจสอบข้อมูลคือการระบุว่าข้อมูลใดอาจไม่ถูกต้อง ไม่สอดคล้อง ไม่สมบูรณ์ หรือแม้แต่ขาดหายไป
ตามคำนิยาม การตรวจสอบข้อมูลเชิงโต้ตอบจะเกิดขึ้นหลังจากข้อเท็จจริงและใช้การตรวจจับความผิดปกติเพื่อระบุปัญหาใดๆ ที่ข้อมูลของคุณอาจมีและช่วยบรรเทาอาการของข้อมูลที่ไม่ถูกต้อง แม้ว่าวิธีการเหล่านี้จะดีกว่าไม่มีอะไรเลย แต่ก็ไม่ได้แก้ปัญหาหลักที่ก่อให้เกิดข้อมูลที่ไม่ดีตั้งแต่แรก
แต่เราเชื่อว่าทีมควรพยายามนำเทคนิคการตรวจสอบข้อมูลเชิงรุกมาใช้ในการวิเคราะห์ เช่น ความปลอดภัยของประเภทและการทำแผนผัง เพื่อให้แน่ใจว่าข้อมูลที่ได้รับนั้นถูกต้อง สมบูรณ์ และอยู่ในโครงสร้างที่คาดไว้ (และสมาชิกในทีมในอนาคตไม่มี เพื่อต่อสู้กับรหัสการวิเคราะห์ที่ไม่ดี)
แม้ว่าอาจดูเหมือนชัดเจนในการเลือกวิธีการตรวจสอบที่ครอบคลุมมากขึ้น แต่หลายทีมลงเอยด้วยการใช้การตรวจสอบข้อมูลเชิงโต้ตอบ อาจมีสาเหตุหลายประการ บ่อยครั้งที่โค้ดการวิเคราะห์เป็นสิ่งที่ต้องคิดภายหลังสำหรับทีมที่ไม่มีข้อมูลจำนวนมาก ดังนั้นจึงไม่มีการทดสอบ
โชคไม่ดีที่ข้อมูลจะถูกประมวลผลโดยไม่มีการตรวจสอบความถูกต้อง นอกจากนี้ โค้ดการวิเคราะห์ที่ไม่ดีจะถูกตรวจพบก็ต่อเมื่อมันแย่จริง ๆ เท่านั้น ซึ่งมักจะเป็นสัปดาห์ต่อมาเมื่อมีคนสังเกตเห็นว่ารายงานมีข้อผิดพลาดร้ายแรงหรือแม้แต่ขาดหายไป
เทคนิคการตรวจสอบข้อมูลเชิงโต้ตอบอาจดูเหมือนการแปลงข้อมูลของคุณในคลังสินค้าด้วยเครื่องมืออย่าง dbt หรือ Dataform
แม้ว่าวิธีการทั้งหมดเหล่านี้อาจช่วยคุณแก้ปัญหาข้อมูลของคุณ (และบ่อยครั้งด้วยเครื่องมือที่ยอดเยี่ยมอย่างเป็นกลาง) แต่ก็ยังไม่สามารถช่วยคุณแก้ไขสาเหตุหลักของข้อมูลที่ไม่ดีของคุณได้ (เช่น การกำกับดูแลข้อมูลทีละน้อยหรือการวิเคราะห์ที่ใช้ในโครงการ- ตามโครงการโดยไม่มีการสื่อสารข้ามทีม) ในตอนแรก ทำให้คุณกลับมาหาพวกเขาทุกครั้ง
การตรวจสอบข้อมูลปฏิกิริยาเพียงอย่างเดียวไม่เพียงพอ คุณต้องใช้เทคนิคการตรวจสอบข้อมูลเชิงรุกเพื่อให้มีประสิทธิภาพอย่างแท้จริงและหลีกเลี่ยงปัญหาค่าใช้จ่ายที่กล่าวถึงก่อนหน้านี้ นี่คือเหตุผล:
- ข้อมูลเป็นกีฬาประเภททีม มันไม่ได้ขึ้นอยู่กับแผนกใดแผนกหนึ่งหรือบุคคลเดียวเพื่อให้แน่ใจว่าข้อมูลของคุณสะอาด ทุกคนต้องทำงานร่วมกันเพื่อให้แน่ใจว่าข้อมูลมีคุณภาพสูงและแก้ปัญหาก่อนที่จะเกิดขึ้น
- การตรวจสอบข้อมูลควรเป็นส่วนหนึ่งของ Software Development Life Cycle (SDLC) เมื่อคุณผสานรวมเข้ากับ SDLC ของคุณและควบคู่ไปกับการพัฒนาทดสอบที่มีอยู่และกระบวนการ QA อัตโนมัติของคุณ (แทนที่จะเพิ่มเป็นความคิดในภายหลัง) คุณจะประหยัดเวลาด้วยการป้องกันปัญหาข้อมูลแทนที่จะแก้ปัญหาในภายหลัง
- การตรวจสอบข้อมูลเชิงรุกสามารถรวมเข้ากับเครื่องมือที่มีอยู่ของคุณและไปป์ไลน์ CI/CD นี่เป็นเรื่องง่ายสำหรับทีมพัฒนาของคุณ เพราะพวกเขาลงทุนไปกับระบบทดสอบอัตโนมัติแล้ว และตอนนี้สามารถขยายได้อย่างรวดเร็วเพื่อเพิ่มความครอบคลุมสำหรับการวิเคราะห์เช่นกัน
- การทดสอบการตรวจสอบข้อมูลเชิงรุกเป็นหนึ่งในวิธีที่ดีที่สุดที่ทีมที่เคลื่อนไหวเร็วจะสามารถทำงานได้อย่างมีประสิทธิภาพ ช่วยให้มั่นใจได้ว่าสามารถวนซ้ำได้อย่างรวดเร็วและหลีกเลี่ยงการล่องลอยของข้อมูลและปัญหาดาวน์สตรีมอื่นๆ
- การตรวจสอบข้อมูลเชิงรุกช่วยให้คุณมั่นใจในการเปลี่ยนแปลงและอัปเดตรหัสของคุณตามต้องการ ในขณะที่ลดจำนวนข้อบกพร่องที่คุณจะต้องแก้ไขในภายหลัง กระบวนการเชิงรุกนี้ช่วยให้แน่ใจว่าคุณและทีมของคุณกำลังเปลี่ยนรหัสที่เกี่ยวข้องโดยตรงกับข้อมูลที่คุณเกี่ยวข้องเท่านั้น
ตอนนี้เราได้ทราบแล้วว่าเหตุใดการตรวจสอบข้อมูลเชิงรุกจึงมีความสำคัญ คำถามต่อไปคือ: คุณจะทำอย่างไร เครื่องมือและวิธีการใดที่ทีมใช้เพื่อให้แน่ใจว่าข้อมูลของพวกเขาดีก่อนที่จะเกิดปัญหาขึ้น
มาดำน้ำกันเถอะ
วิธีการตรวจสอบข้อมูล
การตรวจสอบข้อมูลไม่ได้เป็นเพียงขั้นตอนเดียวที่เกิดขึ้น ณ จุดใดจุดหนึ่ง มันสามารถเกิดขึ้นได้ในหลายจุดในวงจรชีวิตของข้อมูล—ที่ไคลเอ็นต์ ที่เซิร์ฟเวอร์ ในไปป์ไลน์ หรือในคลังสินค้าเอง
จริง ๆ แล้วคล้ายกับการทดสอบซอฟต์แวร์ที่เขียนข้อมูลขนาดใหญ่ในหลายวิธี อย่างไรก็ตาม มีความแตกต่างที่สำคัญประการหนึ่ง คุณไม่ได้ทดสอบผลลัพธ์เพียงอย่างเดียว คุณยังยืนยันว่าข้อมูลที่คุณป้อนนั้นถูกต้อง
มาดูกันว่าการตรวจสอบความถูกต้องของข้อมูลในแต่ละสถานที่มีลักษณะอย่างไร โดยตรวจสอบว่าที่ใดเป็นเชิงรับและส่วนใดเป็นเชิงรุก
เทคนิคการตรวจสอบข้อมูลในเครื่องลูกข่าย
คุณสามารถใช้เครื่องมือเช่น Amplitude Data เพื่อใช้ประโยชน์จากความปลอดภัยของประเภท การทดสอบหน่วย และ linting (การวิเคราะห์โค้ดแบบคงที่) สำหรับการตรวจสอบความถูกต้องของข้อมูลฝั่งไคลเอ็นต์
ตอนนี้เป็นจุดเริ่มต้นที่ดี แต่สิ่งสำคัญคือต้องเข้าใจว่าการทดสอบเครื่องมือ ประเภท นี้ทำให้คุณทำอะไรได้บ้างในเลเยอร์นี้ นี่คือรายละเอียด:
- ความปลอดภัยของประเภท คือเมื่อคอมไพเลอร์ตรวจสอบความถูกต้องของประเภทข้อมูลและคำแนะนำการใช้งานที่ต้นทาง ป้องกันข้อผิดพลาดดาวน์สตรีมเนื่องจากการพิมพ์ผิดหรือตัวแปรที่ไม่คาดคิด
- การทดสอบหน่วย คือเมื่อคุณทดสอบการเลือกรหัสเฉพาะในการแยก น่าเสียดายที่ทีมส่วนใหญ่ไม่ได้รวมการวิเคราะห์ไว้ในการทดสอบหน่วยเมื่อต้องตรวจสอบความถูกต้องของการวิเคราะห์
- การทดสอบ A/B คือการที่คุณทดสอบโฟลว์การวิเคราะห์ของคุณกับชุดข้อมูลสีทอง (เวอร์ชันของการวิเคราะห์ที่คุณรู้ว่าสมบูรณ์แบบ) หรือสำเนาข้อมูลการผลิตของคุณ สิ่งนี้ช่วยให้คุณทราบได้ว่าการเปลี่ยนแปลงที่คุณทำนั้นดีและปรับปรุงสถานการณ์ที่เป็นอยู่หรือไม่
เทคนิคการตรวจสอบข้อมูลในไปป์ไลน์
การตรวจสอบความถูกต้องของข้อมูลในไปป์ไลน์เป็นเรื่องเกี่ยวกับการทำให้แน่ใจว่าข้อมูลที่ส่งโดยไคลเอ็นต์ตรงกับรูปแบบข้อมูลในคลังสินค้าของคุณ หากทั้งสองไม่ได้อยู่ในหน้าเดียวกัน ผู้ใช้ข้อมูลของคุณ (ผู้จัดการผลิตภัณฑ์ นักวิเคราะห์ข้อมูล ฯลฯ) จะไม่ได้รับข้อมูลที่เป็นประโยชน์ในอีกด้านหนึ่ง
วิธีการตรวจสอบข้อมูลในไปป์ไลน์อาจมีลักษณะดังนี้:
- การตรวจสอบสคี มาเพื่อให้แน่ใจว่าการติดตามกิจกรรมของคุณตรงกับสิ่งที่กำหนดไว้ในรีจิสทรีสคีมาของคุณ
- การทดสอบการรวมและส่วนประกอบ ผ่านการทดสอบยูทิลิตีคีย์เชิงสัมพันธ์ เอกลักษณ์ และตัวแทนในเครื่องมืออย่าง dbt เพื่อให้แน่ใจว่าการติดตามระหว่างแพลตฟอร์มทำงานได้ดี
- การทดสอบความ ใหม่ผ่านเครื่องมือเช่น dbt เพื่อพิจารณาว่าแหล่งข้อมูลของคุณ "ใหม่" เพียงใด (หรือที่เรียกว่าเป็นปัจจุบันและมีสุขภาพดีเพียงใด)
- การทดสอบการกระจาย ด้วยเครื่องมืออย่าง Great Expectations เพื่อรับการแจ้งเตือนเมื่อชุดข้อมูลหรือตัวอย่างไม่ตรงกับอินพุตที่คาดไว้ และตรวจสอบให้แน่ใจว่าการเปลี่ยนแปลงที่เกิดขึ้นกับการติดตามของคุณไม่ทำให้กระแสข้อมูลที่มีอยู่ยุ่งเหยิง
เทคนิคการตรวจสอบข้อมูลในคลังสินค้า
คุณสามารถใช้การทดสอบ dbt การทดสอบรูปแบบข้อมูล และความคาดหวังที่ดี เพื่อให้แน่ใจว่าข้อมูลที่ส่งไปยังคลังสินค้าของคุณเป็นไปตามข้อตกลงที่คุณคาดหวังและต้องการ คุณยังสามารถทำการแปลงได้ที่เลเยอร์นี้ รวมถึงการตรวจสอบประเภทและความปลอดภัยของประเภทภายในการแปลงเหล่านั้น แต่เราไม่แนะนำให้ใช้วิธีนี้เป็นเทคนิคการตรวจสอบหลักของคุณ เนื่องจากวิธีนี้เป็นปฏิกิริยา
ณ จุดนี้ วิธีการตรวจสอบที่ใช้ได้สำหรับทีมรวมถึงการตรวจสอบว่าข้อมูลเป็นไปตามข้อกำหนดบางอย่าง จากนั้นจึงแปลงข้อมูลให้ตรงกัน ทีมสามารถใช้การทดสอบความสัมพันธ์และความใหม่ด้วย dbt เช่นเดียวกับการทดสอบค่า/ช่วงโดยใช้ความคาดหวังที่ยอดเยี่ยม
ฟังก์ชันทั้งหมดของเครื่องมือนี้ขึ้นอยู่กับเทคนิคการตรวจสอบข้อมูลหลักบางส่วนในเลเยอร์นี้:
- การจัดทำ แผน เพื่อให้แน่ใจว่าข้อมูล CRUD และการแปลงเป็นไปตามข้อกำหนดที่ตั้งไว้
- การทดสอบความปลอดภัย เพื่อให้แน่ใจว่าข้อมูลเป็นไปตามข้อกำหนดด้านความปลอดภัย เช่น GDPR
- การทดสอบความสัมพันธ์ ในเครื่องมือต่างๆ เช่น dbt เพื่อให้แน่ใจว่าฟิลด์ในโมเดลหนึ่งแมปกับฟิลด์ในตารางที่กำหนด (หรือที่รู้จักในชื่อ Referential Integrity)
- การทดสอบความสดและการกระจาย (ตามที่เรากล่าวถึงในส่วนไปป์ไลน์)
- การ ตรวจสอบช่วงและประเภท ที่ยืนยันว่าข้อมูลที่ส่งจากลูกค้าอยู่ในช่วงหรือรูปแบบที่คาดไว้ของคลังสินค้า
ตัวอย่างที่ยอดเยี่ยมของการทดสอบที่ใช้งานจริงจำนวนมากสามารถพบได้โดยการเจาะลึกเข้าไปในเครื่องมือการค้นพบและข้อมูลเมตาของ Lyft Amundsen เครื่องมือนี้ช่วยให้ผู้ใช้ข้อมูลที่บริษัทค้นหาข้อมูลเมตาของผู้ใช้เพื่อเพิ่มทั้งความสามารถในการใช้งานและความปลอดภัย วิธีการหลักของ Lyft ในการรับรองคุณภาพข้อมูลและการใช้งานคือการกำหนดเวอร์ชันผ่านงาน Airflow ล้างกราฟ ซึ่งจะลบข้อมูลเก่าที่ซ้ำกัน เมื่อมีการเพิ่มข้อมูลใหม่ลงในคลังสินค้า
เหตุใดจึงถึงเวลาที่จะยอมรับเทคนิคการตรวจสอบข้อมูลที่ดีขึ้น
ในอดีต ทีมข้อมูลมีปัญหากับการตรวจสอบความถูกต้องของข้อมูล เนื่องจากองค์กรของพวกเขาไม่ตระหนักถึงความสำคัญของสุขอนามัยข้อมูลและการกำกับดูแล นั่นไม่ใช่โลกที่เราอาศัยอยู่อีกต่อไป
บริษัทต่าง ๆ ได้ตระหนักว่าคุณภาพของข้อมูลเป็นสิ่งสำคัญ การล้างข้อมูลที่ไม่ดีด้วยวิธีเชิงโต้ตอบนั้นไม่ดีพอ การจ้างทีมวิศวกรข้อมูลเพื่อล้างข้อมูลผ่านการแปลงหรือเขียนแบบสอบถาม SQL ที่ไม่มีที่สิ้นสุดเป็นการใช้เวลาและเงินที่ไม่จำเป็นและไม่มีประสิทธิภาพ
เคยเป็นที่ยอมรับได้หากข้อมูลมีความถูกต้อง 80% (ให้หรือรับ ขึ้นอยู่กับกรณีการใช้งาน) โดยปล่อยให้มีข้อผิดพลาด 20% นั่นอาจใช้ได้ดีสำหรับการวิเคราะห์อย่างง่าย แต่ก็ไม่ดีพอสำหรับการขับเคลื่อนเครื่องมือแนะนำผลิตภัณฑ์ ตรวจจับความผิดปกติ หรือทำการตัดสินใจทางธุรกิจหรือผลิตภัณฑ์ที่สำคัญ
บริษัทจ้างวิศวกรเพื่อสร้างผลิตภัณฑ์และทำงานที่ยอดเยี่ยม หากต้องใช้เวลาจัดการกับข้อมูลที่ไม่ดี แสดงว่าพวกเขาไม่ได้ใช้เวลาให้เกิดประโยชน์สูงสุด แต่การตรวจสอบข้อมูลช่วยให้พวกเขามีเวลากลับไปโฟกัสกับสิ่งที่พวกเขาทำได้ดีที่สุด นั่นคือการสร้างคุณค่าให้กับองค์กร
ข่าวดีก็คือข้อมูลคุณภาพสูงอยู่ใกล้แค่เอื้อม ในการบรรลุเป้าหมาย บริษัทต่างๆ จำเป็นต้องช่วยให้ทุกคนเข้าใจคุณค่าของมันด้วยการทำลายไซโลระหว่างผู้ผลิตข้อมูลและผู้บริโภคข้อมูล จากนั้น บริษัทต่างๆ ควรทิ้งสเปรดชีตและใช้แนวทางปฏิบัติด้านวิศวกรรมที่ดีกว่ากับการวิเคราะห์ของตน เช่น การกำหนดเวอร์ชันและแผนผัง สุดท้ายนี้ พวกเขาควรตรวจสอบให้แน่ใจว่ามีการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดของข้อมูลทั่วทั้งองค์กรด้วยแผนการติดตามและการกำกับดูแลข้อมูล
ลงทุนในการตรวจสอบวิเคราะห์เชิงรุกเพื่อรับเงินปันผลจากข้อมูล
ในโลกปัจจุบัน เครื่องมือและวิธีการตรวจสอบข้อมูลแบบโต้ตอบและโดยปริยายไม่เพียงพออีกต่อไป พวกเขาทำให้คุณเสียเวลา เสียเงิน และที่สำคัญที่สุดคือความเชื่อใจ
เพื่อหลีกเลี่ยงชะตากรรมนี้ จงน้อมรับปรัชญาของการทำงานเชิงรุก ระบุปัญหาก่อนที่จะกลายเป็นปัญหาราคาแพงโดยการตรวจสอบข้อมูลการวิเคราะห์ของคุณตั้งแต่เริ่มต้นและตลอดวงจรชีวิตการพัฒนาซอฟต์แวร์