แชร์ผ่าน


บทช่วยสอน Real-Time Intelligence ตอนที่ 3: แปลงข้อมูลในฐานข้อมูล KQL

โน้ต

บทช่วยสอนนี้เป็นส่วนหนึ่งของชุดข้อมูล สําหรับส่วนก่อนหน้า ดูที่: บทช่วยสอน Real-Time Intelligence ตอนที่ 2: รับข้อมูลในฮับ Real-Time

ในส่วนนี้ของบทช่วยสอน คุณจะได้เรียนรู้วิธีการใช้นโยบายการอัปเดตเพื่อแปลงข้อมูลในฐานข้อมูล KQL ใน Real-Time Intelligence นโยบายการอัปเดตเป็นกลไกการทํางานอัตโนมัติที่ถูกทริกเกอร์เมื่อมีการเขียนข้อมูลใหม่ลงในตาราง ซึ่งจะขจัดความจําเป็นสําหรับการเรียงลําดับพิเศษโดยการเรียกใช้คิวรีเพื่อแปลงข้อมูลที่นําเข้า และบันทึกผลลัพธ์ไปยังตารางปลายทาง นโยบายการอัปเดตหลายรายการสามารถกําหนดได้ในตารางเดียว ช่วยให้มีการแปลงที่แตกต่างกันและบันทึกข้อมูลไปยังหลายตารางพร้อมกัน ตารางเป้าหมายสามารถมี Schema นโยบายการเก็บข้อมูล และนโยบายอื่น ๆ ที่แตกต่างกันจากตารางต้นทางได้

ย้ายตารางข้อมูลดิบไปยังโฟลเดอร์สีบรอนซ์

ในขั้นตอนนี้ คุณย้ายตารางข้อมูลดิบไปยังโฟลเดอร์ทองแดงเพื่อจัดระเบียบข้อมูลในฐานข้อมูล KQL

  1. เรียกดูฐานข้อมูล KQL ที่คุณสร้างขึ้นในขั้นตอนก่อนหน้า ที่ชื่อว่า บทช่วยสอน

  2. ในแผนผังวัตถุ ภายใต้ชื่อฐานข้อมูล KQL ให้เลือกพื้นที่ทํางานคิวรีที่เรียกว่า Tutorial_queryset

  3. คัดลอก/วางคําสั่งต่อไปนี้เพื่อเปลี่ยนตารางเพื่อย้ายตารางไปยังโฟลเดอร์ทองแดง

    .alter table RawData (BikepointID:string,Street:string,Neighbourhood:string,Latitude:dynamic,Longitude:dynamic,No_Bikes:long,No_Empty_Docks:long,Timestamp:datetime) with (folder="Bronze")
    

สร้างตารางเป้าหมาย

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

  1. คัดลอก/วางคําสั่งต่อไปนี้เพื่อสร้างตารางใหม่ที่เรียกว่า TransformedData ด้วยสคีมาที่ระบุ

    .create table TransformedData (BikepointID: int, Street: string, Neighbourhood: string, Latitude: dynamic, Longitude: dynamic, No_Bikes: long, No_Empty_Docks: long, Timestamp: datetime, BikesToBeFilled: long, Action: string) with (folder="Silver")
    
  2. เรียกใช้คําสั่งเพื่อสร้างตาราง ตอนนี้คุณควรเห็นตารางอื่นภายใต้โหนด ตาราง ในแผนผังออบเจ็กต์ที่เรียกว่า TransformedData

สร้างฟังก์ชันพร้อมตรรกะการแปลง

ในขั้นตอนนี้ คุณสร้างฟังก์ชันที่จัดเก็บตรรกะการแปลงที่จะใช้ในนโยบายการอัปเดต ฟังก์ชันแยกวิเคราะห์คอลัมน์ BikepointID และเพิ่มคอลัมน์จากการคํานวณใหม่สองคอลัมน์

  1. จากริบบอนเมนู เลือก ฐานข้อมูล

  2. เลือก +ฟังก์ชัน>ใหม่

  3. แก้ไขฟังก์ชันเพื่อให้ตรงกับรหัสต่อไปนี้ หรือคัดลอก/วางคําสั่งต่อไปนี้ลงในตัวแก้ไขคิวรี

    .create-or-alter function TransformRawData() {
    RawData
    | parse BikepointID with * "BikePoints_" BikepointID:int
    | extend BikesToBeFilled = No_Empty_Docks - No_Bikes
    | extend Action = iff(BikesToBeFilled > 0, tostring(BikesToBeFilled), "NA")
     }
    
  4. เรียกใช้คําสั่งเพื่อสร้างฟังก์ชัน ตอนนี้คุณควรเห็นฟังก์ชัน TransformRawData ภายใต้ฟังก์ชัน โหนดในแผนผังออบเจ็กต์

นํานโยบายการอัปเดตไปใช้

ในขั้นตอนนี้ คุณใช้นโยบายการอัปเดตไปยังตารางเป้าหมายเพื่อแปลงข้อมูล นโยบายการอัปเดตใช้ฟังก์ชันที่จัดเก็บ TransformRawData() เพื่อแยกวิเคราะห์คอลัมน์ BikepointID และเพิ่มคอลัมน์จากการคํานวณใหม่สองคอลัมน์

  1. จากริบบอนเมนู เลือก ฐานข้อมูล

  2. เลือก + นโยบายการอัปเดตตาราง>ใหม่

  3. แก้ไขนโยบายเพื่อให้ตรงกับโค้ดต่อไปนี้ หรือคัดลอก/วางคําสั่งต่อไปนี้ลงในตัวแก้ไขคิวรี

    .alter table TransformedData policy update
    ```[{
        "IsEnabled": true,
        "Source": "RawData",
        "Query": "TransformRawData()",
        "IsTransactional": false,
        "PropagateIngestionProperties": false
    }]```
    
  4. เรียกใช้คําสั่งเพื่อสร้างนโยบายการอัปเดต

ตรวจสอบการแปลง

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

โน้ต

ซึ่งอาจใช้เวลาสองถึงสามวินาทีในการดูข้อมูลในตารางที่ถูกแปลง

  1. คัดลอก/วางคิวรีต่อไปนี้ลงในตัวแก้ไขคิวรีเพื่อดูบันทึกโดยพลการ 10 รายการในตารางแหล่งข้อมูล เรียกใช้คิวรี

    RawData
    | take 10
    
  2. คัดลอก/วางคิวรีต่อไปนี้ลงในตัวแก้ไขคิวรีเพื่อดูบันทึกตามอําเภอใจ 10 รายการในตารางเป้าหมาย เรียกใช้คิวรี

    TransformedData
    | take 10
    

โปรดสังเกตว่าคอลัมน์ BikepointID ในตารางเป้าหมายไม่มีคํานําหน้า "BikePoints_" อีกต่อไป

สําหรับข้อมูลเพิ่มเติมเกี่ยวกับงานที่ดําเนินการในบทช่วยสอนนี้ โปรดดู:

  • นโยบายการอัปเดต
  • ตัวดําเนินการแยกวิเคราะห์
  • ฟังก์ชันที่จัดเก็บ
  • คําสั่งของฟังก์ชัน .create

ขั้นตอนถัดไป