สร้างและแก้ไขตารางแบบยืดหยุ่น
ตารางยืดหยุ่นเป็นตารางที่จัดการโดย 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
- ลงชื่อเข้าใช้ Power Apps และเลือก ตาราง ในบานหน้าต่างนำทางด้านซ้าย หากรายการไม่อยู่ในบานหน้าต่างแผงด้านข้าง ให้เลือก …เพิ่มเติม แล้วเลือกรายการที่คุณต้องการ
- เลือก ตารางใหม่>ตั้งค่าคุณสมบัติขั้นสูง บนแถบคำสั่ง
- ในบานหน้าต่างคุณสมบัติด้านขวา ให้ป้อน ชื่อที่แสดง และ ชื่อพหูพจน์
- ขยาย ตัวเลือกขั้นสูง แล้วเลือก ยืดหยุ่น เป็น ชนิด ของตาราง
- เลือกคุณสมบัติที่คุณต้องการ และจากนั้นเลือก บันทึก
คอลัมน์ Time to Live จะถูกสร้างขึ้นโดยอัตโนมัติสำหรับตารางแบบยืดหยุ่น คุณสามารถเพิ่มค่าช่วงเวลาเป็นวินาทีได้ตามต้องการ ข้อมูลจะถูกลบออกโดยอัตโนมัติหลังจากระยะเวลาที่กำหนด
ข้อมูลเพิ่มเติมเกี่ยวกับตาราง: ตัวเลือกขั้นสูง
ปัญหาที่ทราบกันดี
- เมื่อใช้ time to live (TTL) ในแถว แถวนั้นจะถูกลบออกจากตารางแบบยืดหยุ่นเมื่อ TTL หมดอายุลง หากมีการทำข้อมูลให้ตรงกันกับ Data Lake โดยใช้ Azure Synapse Link สำหรับ Dataverse ก่อน TTL หมดอายุ ระบบจะไม่ลบข้อมูลนั้นออกจาก Data Lake
- การคืนค่าจุดในเวลาจะไม่คืนค่าเรกคอร์ด "ที่อัปเดต" เนื่องจากไม่ได้สำรองข้อมูลการอัปเดต เฉพาะเรกคอร์ดที่สร้างและลบเท่านั้นที่จะได้รับการคืนค่า
- หากคอลัมน์เฉพาะในตารางยืดหยุ่นถูกลบ ค่าคอลัมน์จะไม่ถูกลบออกจากแถวของตารางหากมีข้อมูล ก่อนที่จะลบคอลัมน์ใดคอลัมน์หนึ่ง ให้ลบข้อมูลออกจากแถวทั้งหมดสำหรับคอลัมน์นั้น
ตารางยืดหยุ่นที่มีปริมาณสูงและการจัดการขีดจำกัดการควบคุม Dataverse API
ใช้ ข้อความการดำเนินการจำนวนมาก ซึ่งช่วยให้คุณทำได้ด้วยอัตราความเร็วที่เพิ่มขึ้น 10 เท่า เมื่อเทียบกับขีดจำกัดการควบคุม API ของ Dataverse เดียวกัน นักพัฒนาสามารถอ้างอิงลิงก์เพิ่มเติมที่ให้ไว้ในส่วนด้านล่าง
สำหรับนักพัฒนา
ตารางแบบยืดหยุ่นมีลักษณะการทำงานและความสามารถที่แตกต่างจากตารางมาตรฐานเมื่อนักพัฒนาใช้กับ Dataverse API บทความสำหรับนักพัฒนาต่อไปนี้จะอธิบายถึงความแตกต่างเหล่านี้:
- ตารางแบบยืดหยุ่น
- สร้างตารางแบบยืดหยุ่นโดยใช้โค้ด
- ใช้ตารางแบบยืดหยุ่นโดยใช้โค้ด
- การสอบถามคอลัมน์ JSON ในตารางแบบยืดหยุ่น
- ข้อความการดำเนินการจำนวนมาก (พรีวิว)
- โค้ดตัวอย่างของตารางแบบยืดหยุ่น
- ส่งคำขอแบบขนาน
- ขีดจํากัด API การป้องกันบริการ