มิติวันที่และความสัมพันธ์

Data Modeling ระดับกลางใน Power BI

Maarten Van den Broeck

Content Developer

มิติวันที่และเวลา

  • มิติวันที่ มีปฏิทินในตัวและช่วยลดการดำเนินการวันที่ที่ซับซ้อน
    • เช่น จับคู่ปีงบประมาณกับปีปฏิทิน
    • เช่น แบ่งตามไตรมาส เดือน สัปดาห์
  • มิติเวลา จัดการเวลาในวัน: ชั่วโมง นาที วินาที
  • มิติเวลา พบได้น้อยกว่ามิติวันที่มาก

มิติวันที่ใน star schema

Data Modeling ระดับกลางใน Power BI

ตัวเลือกสำหรับสร้างมิติวันที่

วิธีการ ข้อดี ข้อเสีย
เก็บในฐานข้อมูล เหมาะมากหากดึงข้อมูลจาก warehouse! ต้องมีฐานข้อมูล
แชร์กับหลายบริการได้ง่าย อัปเดตสะดวก
เก็บในไฟล์ ไม่ต้องมีฐานข้อมูล สร้างครั้งเดียว ต้องสร้างไฟล์เอง
Power BI รองรับไฟล์ข้อความได้ดี อัปเดตไม่สะดวกเท่าการเก็บในฐานข้อมูล
สร้างด้วย DAX ปรับแต่งได้มากกว่าสองวิธีแรก ต้องเขียนโค้ดเอง
ไม่ต้องเตรียมข้อมูลภายนอก บางฟังก์ชันอาจทำได้ยากกว่า
Data Modeling ระดับกลางใน Power BI

สร้างมิติวันที่อย่างง่ายด้วย DAX

Month_Year = 



CALENDAR(DATE(1950, 1, 1), TODAY()),

  • CALENDAR() เป็นฟังก์ชันในตัวที่คืนค่าวันที่ทั้งหมดในช่วงที่กำหนด
Data Modeling ระดับกลางใน Power BI

สร้างมิติวันที่อย่างง่ายด้วย DAX

Month_Year = 



CALENDAR(DATE(1950, 1, 1), TODAY()),

  • CALENDAR() เป็นฟังก์ชันในตัวที่คืนค่าวันที่ทั้งหมดในช่วงที่กำหนด
  • สร้างฟิลด์ [Date] ที่มีทุกวันตั้งแต่ 1950-01-01 จนถึงวันนี้ $$ $$ $$
[Date]
1950-01-01
1950-01-02
...
2021-06-30
Data Modeling ระดับกลางใน Power BI

สร้างมิติวันที่อย่างง่ายด้วย DAX

Month_Year = 


SELECTCOLUMNS(
CALENDAR(DATE(1950, 1, 1), TODAY()),
"Month", MONTH([Date]), "Year", YEAR([Date]) )
  • CALENDAR() เป็นฟังก์ชันในตัวที่คืนค่าวันที่ทั้งหมดในช่วงที่กำหนด
  • สร้างฟิลด์ [Date] ที่มีทุกวันตั้งแต่ 1950-01-01 จนถึงวันนี้
  • เลือกคอลัมน์ที่ต้องการเพิ่ม $$ $$
Month Year
01 1950
01 1950
... ...
06 2021
Data Modeling ระดับกลางใน Power BI

สร้างมิติวันที่อย่างง่ายด้วย DAX

Month_Year = 

DISTINCT(
SELECTCOLUMNS(
CALENDAR(DATE(1950, 1, 1), TODAY()),
"Month", MONTH([Date]), "Year", YEAR([Date]) )
)
  • CALENDAR() เป็นฟังก์ชันในตัวที่คืนค่าวันที่ทั้งหมดในช่วงที่กำหนด
  • สร้างฟิลด์ [Date] ที่มีทุกวันตั้งแต่ 1950-01-01 จนถึงวันนี้
  • เลือกคอลัมน์ที่ต้องการเพิ่ม
  • เก็บเฉพาะแถวที่ไม่ซ้ำกัน
Month Year
01 1950
02 1950
... ...
06 2021
Data Modeling ระดับกลางใน Power BI

การกำหนดความสัมพันธ์

  • ความสัมพันธ์ช่วยให้เชื่อมตารางใน Power BI ได้
    • ส่งต่อตัวกรองข้ามตาราง
    • รองรับการคำนวณข้ามตาราง
  • วิธีจัดการความสัมพันธ์
    • ตรวจหาอัตโนมัติจากชื่อคอลัมน์
    • กำหนดเองด้วยตนเอง

โมเดลข้อมูลที่มีความสัมพันธ์

Data Modeling ระดับกลางใน Power BI

คีย์ของความสัมพันธ์

  • ความสัมพันธ์อาศัยคีย์เป็นหลัก

    • คอลัมน์หนึ่งคอลัมน์หรือมากกว่าที่รับประกันความเป็นเอกลักษณ์ของแต่ละแถว
  • คีย์มี 2 ประเภท:

    • Natural key: คอลัมน์ที่มีอยู่แล้ว (เช่น email)
    • Surrogate key: คอลัมน์ที่สร้างขึ้นเทียม (เช่น ID)
  • Power BI รองรับความสัมพันธ์แบบคอลัมน์เดียวเท่านั้น

Data Modeling ระดับกลางใน Power BI

คีย์ของความสัมพันธ์

  • ความสัมพันธ์อาศัยคีย์เป็นหลัก

    • คอลัมน์หนึ่งคอลัมน์หรือมากกว่าที่รับประกันความเป็นเอกลักษณ์ของแต่ละแถว
  • คีย์มี 2 ประเภท:

    • Natural key: คอลัมน์ที่มีอยู่แล้ว (เช่น email)
    • Surrogate key: คอลัมน์ที่สร้างขึ้นเทียม (เช่น ID)
  • Power BI รองรับความสัมพันธ์แบบคอลัมน์เดียวเท่านั้น

  • Composite key: คีย์ที่ประกอบด้วยคอลัมน์อย่างน้อยสองคอลัมน์
ชื่อ นามสกุล ปีเกิด ค่า
Chris P Bacon 1996 599
Jane Bonds 1998 523
Dwayne Pipe 1988 -566

$$

Composite Key ค่า
Chris P-Bacon-1996 599
Jane-Bondts-1998 523
Dwayne-Pipe-1988 -566
Data Modeling ระดับกลางใน Power BI

Cardinality

  • ตัวชี้วัดความสัมพันธ์ระหว่างแถวของสองตาราง
  • Many-to-one/One-to-many: ใช้บ่อยที่สุด
    • เชื่อมแถวหนึ่งแถวในตาราง dimension กับแถวหนึ่งแถวหรือมากกว่าในตาราง fact

$$

ความสัมพันธ์แบบ one to many

ความสัมพันธ์แบบ many to one

Data Modeling ระดับกลางใน Power BI

Cardinality

  • ประเภทที่พบได้น้อย:

    • One-to-one ความสัมพันธ์แบบ one to one $$

    • Many-to-many ความสัมพันธ์แบบ many to many

Data Modeling ระดับกลางใน Power BI

มาฝึกกันเถอะ!

Data Modeling ระดับกลางใน Power BI

Preparing Video For Download...