แชร์ผ่าน


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

Note

บทช่วยสอนนี้เป็นส่วนหนึ่งของซีรีส์ สําหรับส่วนก่อนหน้า โปรดดู: บทช่วยสอนReal-Time Intelligence ส่วนที่ 3: ตั้งค่าการแจ้งเตือนบนสตรีมเหตุการณ์ของคุณ

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

สามารถกําหนดนโยบายการอัปเดตหลายรายการบนตารางเดียว ซึ่งช่วยให้สามารถแปลงข้อมูลที่แตกต่างกัน และบันทึกข้อมูลไปยังหลายตารางพร้อมกัน ตารางเป้าหมายสามารถมี Schema นโยบายการเก็บรักษา และนโยบายอื่นๆ ที่แตกต่างจากตารางต้นทาง

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

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

  1. ไปที่พื้นที่ทํางานที่คุณสร้างทรัพยากร

  2. เลือกฐานข้อมูล KQL บทช่วยสอน ที่คุณสร้างไว้ก่อนหน้านี้

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

    สกรีนช็อตของการเลือก **Tutorial_queryset** จากแผนผังรายการฐานข้อมูล

  4. คัดลอกและวางคําสั่งต่อไปนี้ลงในตัวแก้ไขคิวรีเพื่อย้ายตาราง RawData ไปยังโฟลเดอร์ Bronze เรียกใช้แบบสอบถามโดยเลือกปุ่ม เรียกใช้ ใน Ribbon เมนู หรือกด Shift + Enter

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

    คุณจะเห็นโฟลเดอร์ใหม่ชื่อ บรอนซ์ ที่มีตารางที่เรียกว่า RawData ภายใต้โหนด ตารางใน แผนผังวัตถุ

    สกรีนช็อตของโฟลเดอร์ย่อย บรอนซ์ ที่มีตาราง RawData

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

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

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

    .create table TransformedData (BikepointID: int, Street: string, Neighbourhood: string, Latitude: real, Longitude: real, No_Bikes: long, No_Empty_Docks: long, Timestamp: datetime, BikesToBeFilled: long, Action: string) with (folder="Silver")
    
  2. เรียกใช้คําสั่งเพื่อสร้างตาราง

    คุณจะเห็นโฟลเดอร์ใหม่ชื่อ Silver ที่มีตารางที่เรียกว่า TransformedData ภายใต้โหนด ตารางใน แผนผังวัตถุ

    สกรีนช็อตของโฟลเดอร์ย่อย Silver ที่มีตาราง TransformedData

สร้างฟังก์ชันด้วยตรรกะการแปลง

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

  1. จาก Ribbon เมนู ให้เลือก ฐานข้อมูล

  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 ภายใต้โหนด Functions ในแผนผังวัตถุ

    สกรีนช็อตของโฟลเดอร์ Functions ที่มีฟังก์ชัน TransformedData

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

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

  1. จาก Ribbon เมนู ให้เลือก ฐานข้อมูล

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

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

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

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

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

Note

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

  1. คัดลอกและวางแบบสอบถามต่อไปนี้ลงในตัวแก้ไขแบบสอบถามเพื่อดูระเบียนโดยอําเภอใจ 10 รายการในตารางต้นฉบับ เรียกใช้คิวรี

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

    TransformedData
    | take 10
    

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

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

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