แชร์ผ่าน


สร้างและแก้ไขตารางแบบยืดหยุ่น

ตารางยืดหยุ่นเป็นตารางที่จัดการโดย Microsoft Dataverse ตารางแบบยืดหยุ่นมาพร้อมกับประสบการณ์ผู้ใช้ที่คุ้นเคยและ API แบบเดียวกับที่มีให้ในตารางมาตรฐาน ตารางมีแง่มุมและตัวเลือกมากมายแบบเดียวกับตารางมาตรฐาน แต่มาพร้อมกับคุณลักษณะและความสามารถเฉพาะของตนที่ขับเคลื่อนโดย Azure Cosmos DB

ตารางแบบยืดหยุ่นจะรวมอยู่ในการใช้ความจุฐานข้อมูล Dataverse ของคุณเช่นเดียวกับตารางมาตรฐาน

ดูวิดีโอนี้เพื่อเรียนรู้เกี่ยวกับตารางแบบยืดหยุ่น

เมื่อใดควรพิจารณาตาราง Dataverse แบบยืดหยุ่น

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

ตารางแบบยืดหยุ่นมีความสามารถเฉพาะสำหรับสคีมาแบบยืดหยุ่น การปรับขนาดแนวนอน และการลบข้อมูลโดยอัตโนมัติหลังจากช่วงเวลาหนึ่ง

ตารางแบบยืดหยุ่นปรับขนาดโดยอัตโนมัติเพื่อนำเข้าแถวหลายสิบล้านแถวทุก ๆ ชั่วโมง กระบวนการแบบเบื้องหลังสามารถรวบรวมสัญญาณ IoT คาดคะเนความต้องการในการบำรุงรักษา และจัดกำหนดการช่างเทคนิคในเชิงรุก

พิจารณาสถานการณ์ที่ Contoso เป็นผู้ค้าปลีกที่มีลูกค้าหลายล้านราย Contoso มีฐานข้อมูลขนาดใหญ่ของลูกค้า และกำลังหาวิธีเพิ่มยอดขายในขณะที่รักษาลูกค้าเดิมไว้ จากประวัติของลูกค้าก่อนหน้านี้ พวกเขากำลังมองหากิจกรรมการขายลดราคาตลอด 24 ชั่วโมงพร้อมคูปองต่างๆ ที่กำหนดเป้าหมายไปที่ลูกค้าและผลิตภัณฑ์ของตน พวกเขาคาดการณ์ว่าจำนวนคูปองที่ต้องใช้จะอยู่ที่ 100 ล้านขึ้นไปต่อแคมเปญการขายลดราคา แผนการตลาดเพื่อเรียกใช้แคมเปญหลายรายการตลอด 24 ชั่วโมงโดยกำหนดเป้าหมายไปยังกลุ่มลูกค้าที่แตกต่างกัน

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

ตารางแบบยืดหยุ่นจะปรับขนาดโดยอัตโนมัติสำหรับสถานการณ์ปริมาณงานสูงนี้

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

ใช้ตารางแบบยืดหยุ่นเมื่อ:

  • ข้อมูลของคุณอาจเป็นแบบไม่มีโครงสร้างหรือกึ่งโครงสร้าง หรือหากรูปแบบข้อมูลของคุณอาจเปลี่ยนแปลงตลอดเวลา
  • คุณต้องปรับขนาดแนวนอนอัตโนมัติ
  • คุณต้องจัดการคำขออ่านและเขียนจำนวนมาก

ใช้ตารางมาตรฐานเมื่อ:

  • แอปพลิเคชันของคุณต้องการความสม่ำเสมออย่างมาก
  • แอปพลิเคชันของคุณต้องการการสร้างโมเดลเชิงสัมพันธ์และต้องการความสามารถในการทำธุรกรรมระหว่างตารางและระหว่างขั้นตอนการดำเนินการของปลั๊กอิน
  • แอปพลิเคชันของคุณต้องการการรวมที่ซับซ้อน

การเลือกตารางควรเป็นไปตามความต้องการเฉพาะของแอปพลิเคชันของคุณ การใช้ตารางทั้งสองชนิดร่วมกันอาจเหมาะสม

การปรับขนาดแนวนอนและประสิทธิภาพ

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

หากสถานการณ์ทางธุรกิจของคุณต้องการการเขียนข้อมูลจำนวนมาก ผู้สร้างแอปพลิเคชันสามารถใช้ API คำขอหลายรายการใน Dataverse ได้ เช่น CreateMultiple, UpdateMultiple และ DeleteMultiple เพื่อให้ได้ปริมาณงานมากขึ้นภายในขีดจำกัดการควบคุมของ Dataverse ข้อมูลเพิ่มเติม: คู่มือนักพัฒนา: ข้อความการดำเนินการจำนวนมาก และ เพิ่มประสิทธิภาพสำหรับการดำเนินงานจำนวนมาก

การลบข้อมูลอัตโนมัติ

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

สคีมาที่ยืดหยุ่นพร้อมคอลัมน์ JSON

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

ข้อควรพิจารณาเมื่อคุณใช้ตารางแบบยืดหยุ่น

แม้ว่าตารางแบบยืดหยุ่นนั้นยอดเยี่ยมสำหรับการจัดการคำขอจำนวนมากตามขนาด แต่ข้อดีก็มาพร้อมกับการแลกเปลี่ยนเล็กน้อย ซึ่งควรคำนึงถึง:

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

การสนับสนุนคุณลักษณะตารางแบบยืดหยุ่น

  • การดำเนินการสร้าง เรียกค้น อัปเดต ลบ (CRUD) รวมถึงการดำเนินการหลายอย่างของ API (สำหรับปริมาณงานสูง) การลบจำนวนมาก และการร้องขอจากปลั๊กอิน
  • ความสัมพันธ์:
    • แบบหนึ่งต่อกลุ่ม
    • ความสัมพันธ์แบบกลุ่มต่อหนึ่ง (N:1) เมื่อตาราง N เป็นตารางมาตรฐาน
  • ความเป็นเจ้าของเรกคอร์ด การติดตามการเปลี่ยนแปลง การตรวจสอบ, Mobile Offline และการค้นหา Dataverse
  • คอลัมน์ไฟล์พร้อมแอตทริบิวต์ชนิดไฟล์

การสนับสนุนคุณลักษณะด้านความปลอดภัย

ตารางแบบยืดหยุ่นเป็นไปตามโมเดลความปลอดภัยของ Dataverse

เมื่อสร้างตารางแบบยืดหยุ่น คุณสามารถตั้งค่า:

  • ผู้ใช้หรือองค์กรเป็นเจ้าของ
  • ความปลอดภัยระดับฟิลด์

คุณลักษณะที่ยังไม่รองรับตารางแบบยืดหยุ่นในขณะนี้

คุณลักษณะตารางที่ยังไม่รองรับตารางแบบยืดหยุ่นในขณะนี้:

  • กฎทางธุรกิจ
  • แผนภูมิ
  • โฟลว์กระบวนการธุรกิจ
  • ตัวเชื่อมต่อ Dataverse เดียวสำหรับ Power BI
  • ความสัมพันธ์แบบกลุ่มต่อกลุ่ม (N:N) กับตารางมาตรฐาน
  • คีย์สำรอง
  • การตรวจหารายการซ้ำ
  • คอลัมน์ค่าสะสมและคำนวณแล้ว
  • คอลัมน์สกุลเงิน
  • การเปรียบเทียบคอลัมน์ในการสอบถาม
  • การแชร์ตาราง
  • ดัชนีรวม
  • การดำเนินการที่เกี่ยวข้อง: ลบ, กำหนดรายการหลักใหม่, กำหนด, แชร์, ยกเลิกการแชร์
  • การจัดลำดับงในคอลัมน์ค้นหา
  • การสอบถามรวม:
    • ค่าแยกของ attribute1 ขณะที่ orderby ในค่า attribute2
    • การแบ่งหน้าเมื่อมีความแตกต่างหลายแบบ
    • ความแตกต่างที่มีหลายลำดับโดย
    • จัดลำดับตามร่วมกับจัดกลุ่มตาม
    • จัดกลุ่มตามเอนทิตีลิงก์ (การรวมภายนอกด้านซ้าย)
    • ความแตกต่างในตารางที่ผู้ใช้เป็นเจ้าของ 
  • การเชื่อมต่อตาราง
  • กลุ่มคนที่มีสิทธิเข้าถึง
  • Queues
  • สิ่งที่แนบ

ชนิดข้อมูลคอลัมน์ไม่สามารถใช้กับตารางแบบยืดหยุ่นในขณะนี้:

  • สกุลเงิน
  • สูตร
  • รูปแบบจำนวนเต็มนอกเหนือจากไม่มี (ระยะเวลา รหัสภาษา และโซนเวลา)
  • การค้นหาตามตัวเลือกลูกค้า

สร้างตารางแบบยืดหยุ่น

คุณสร้างตารางแบบยืดหยุ่นได้เหมือนกับตารางใหม่อื่นๆ ใน Dataverse

  1. ลงชื่อเข้าใช้ Power Apps และเลือก ตาราง ในบานหน้าต่างนำทางด้านซ้าย หากรายการไม่อยู่ในบานหน้าต่างแผงด้านข้าง ให้เลือก …เพิ่มเติม แล้วเลือกรายการที่คุณต้องการ
  2. เลือก ตารางใหม่ > ตั้งค่าคุณสมบัติขั้นสูง บนแถบคำสั่ง
  3. ในบานหน้าต่างคุณสมบัติด้านขวา ให้ป้อน ชื่อที่แสดง และ ชื่อพหูพจน์
  4. ขยาย ตัวเลือกขั้นสูง แล้วเลือก ยืดหยุ่น เป็น ชนิด ของตาราง เลือกแบบยืดหยุ่นเป็นตารางชนิด
  5. เลือกคุณสมบัติที่คุณต้องการ และจากนั้นเลือก บันทึก

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

ข้อมูลเพิ่มเติมเกี่ยวกับตาราง: ตัวเลือกขั้นสูง

ปัญหาที่ทราบกันดี

  • เมื่อใช้ time to live (TTL) ในแถว แถวนั้นจะถูกลบออกจากตารางแบบยืดหยุ่นเมื่อ TTL หมดอายุลง หากซิงโครไนซ์กับที่จัดเก็บข้อมูลดิบโดยใช้ Azure Synapse Link for Dataverse ก่อน TTL จะหมดอายุ แถวจะไม่ถูกลบออกจากที่จัดเก็บข้อมูลดิบ
  • การคืนค่าจุดในเวลาจะไม่คืนค่าเรกคอร์ด "ที่อัปเดต" เนื่องจากไม่ได้สำรองข้อมูลการอัปเดต เฉพาะเรกคอร์ดที่สร้างและลบเท่านั้นที่จะได้รับการคืนค่า
  • หากคอลัมน์เฉพาะในตารางยืดหยุ่นถูกลบ ค่าคอลัมน์จะไม่ถูกลบออกจากแถวของตารางหากมีข้อมูล ก่อนที่จะลบคอลัมน์ใดคอลัมน์หนึ่ง ให้ลบข้อมูลออกจากแถวทั้งหมดสำหรับคอลัมน์นั้น

ตารางยืดหยุ่นที่มีปริมาณสูงและการจัดการขีดจำกัดการควบคุม Dataverse API

ใช้ ข้อความการดำเนินการจำนวนมาก ซึ่งช่วยให้คุณทำได้ด้วยอัตราความเร็วที่เพิ่มขึ้น 10 เท่า เมื่อเทียบกับขีดจำกัดการควบคุม API ของ Dataverse เดียวกัน นักพัฒนาสามารถอ้างอิงลิงก์เพิ่มเติมที่ให้ไว้ในส่วนด้านล่าง

สำหรับนักพัฒนา

ตารางแบบยืดหยุ่นมีลักษณะการทำงานและความสามารถที่แตกต่างจากตารางมาตรฐานเมื่อนักพัฒนาใช้กับ Dataverse API บทความสำหรับนักพัฒนาต่อไปนี้จะอธิบายถึงความแตกต่างเหล่านี้:

ดูเพิ่มเติม

สร้างและแก้ไขตารางโดยใช้ Power Apps