การสร้างแบบจำลองมิติใน Amazon Redshift | บริการเว็บอเมซอน

การสร้างแบบจำลองมิติใน Amazon Redshift | บริการเว็บอเมซอน

โหนดต้นทาง: 2778508

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

ในโพสต์นี้ เราจะพูดถึงวิธีการใช้แบบจำลองมิติ โดยเฉพาะ วิธีการของคิมบอลล์. เราหารือเกี่ยวกับการปรับใช้มิติข้อมูลและข้อเท็จจริงภายใน Amazon Redshift เราแสดงวิธีการแยก แปลง และโหลด (ELT) ซึ่งเป็นกระบวนการผสานรวมที่มุ่งเน้นการรับข้อมูลดิบจาก Data Lake เข้าสู่ชั้นการจัดเตรียมเพื่อดำเนินการสร้างแบบจำลอง โดยรวมแล้ว โพสต์นี้จะช่วยให้คุณเข้าใจวิธีใช้การสร้างแบบจำลองเชิงมิติใน Amazon Redshift อย่างชัดเจน

ภาพรวมโซลูชัน

ไดอะแกรมต่อไปนี้แสดงสถาปัตยกรรมโซลูชัน

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

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

จากการวิเคราะห์เพื่อบรรลุเป้าหมายของ วิธีการสร้างแบบจำลองมิติ Kimballมีสี่ขั้นตอนสำคัญในการออกแบบแบบจำลองมิติ:

  1. ระบุกระบวนการทางธุรกิจ
  2. ประกาศรายละเอียดข้อมูลของคุณ
  3. ระบุและใช้มิติข้อมูล
  4. ระบุและดำเนินการตามข้อเท็จจริง

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

เบื้องต้น

สำหรับคำแนะนำนี้ คุณควรมีข้อกำหนดเบื้องต้นต่อไปนี้:

ระบุกระบวนการทางธุรกิจ

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

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

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

ประกาศรายละเอียดข้อมูลของคุณ

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

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

ระบุและใช้มิติข้อมูล

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

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

ในส่วนต่อไปนี้ เราได้ให้รายละเอียดขั้นตอนในการนำมิติข้อมูลไปใช้

จัดลำดับแหล่งข้อมูล

ก่อนที่เราจะสามารถสร้างและโหลดตารางขนาดได้ เราต้องการแหล่งข้อมูลก่อน ดังนั้นเราจึงจัดลำดับแหล่งข้อมูลลงในตารางชั่วคราวหรือตารางชั่วคราว ซึ่งมักเรียกกันว่า ชั้นการแสดงละครซึ่งเป็นสำเนาดิบของข้อมูลต้นทาง ในการทำเช่นนี้ใน Amazon Redshift เราใช้ คำสั่ง COPY เพื่อโหลดข้อมูลจากที่เก็บข้อมูล S3 สาธารณะการสร้างแบบจำลองมิติใน Amazon-redshift ที่อยู่บน us-east-1 ภูมิภาค. โปรดทราบว่าคำสั่ง COPY ใช้ AWS Identity และการจัดการการเข้าถึง (IAM) มีบทบาทร่วมกับ เข้าถึง Amazon S3. บทบาทจะต้องมี เกี่ยวข้องกับคลัสเตอร์. ทำตามขั้นตอนต่อไปนี้เพื่อจัดเตรียมข้อมูลต้นทาง:

  1. สร้าง venue ตารางแหล่งที่มา:
CREATE TABLE public.venue ( venueid bigint, venuename character varying(100), venuecity character varying(30), venuestate character(2), venueseats bigint
) DISTSTYLE AUTO SORTKEY (venueid);

  1. โหลดข้อมูลสถานที่:
COPY public.venue
FROM 's3://redshift-blogs/dimensional-modeling-in-amazon-redshift/venue.csv'
IAM_ROLE '<Your IAM role arn>'
DELIMITER ','
REGION 'us-east-1'
IGNOREHEADER 1

  1. สร้าง sales ตารางแหล่งที่มา:
CREATE TABLE public.sales (
    salesid integer,
    venueid character varying(256),
    saletime timestamp without time zone,
    qtysold BIGINT,
    commission numeric(18,2),
    pricepaid numeric(18,2)
) DISTSTYLE AUTO;

  1. โหลดข้อมูลแหล่งขาย:
COPY public.sales
FROM 's3://redshift-blogs/dimensional-modeling-in-amazon-redshift/sales.csv'
IAM_ROLE '<Your IAM role arn>'
DELIMITER ','
REGION 'us-east-1'
IGNOREHEADER 1

  1. สร้าง calendar ตาราง:
CREATE TABLE public.DimCalendar(
    dateid smallint,
        caldate date,
        day varchar(20),
        week smallint,
        month varchar(20),
        qtr varchar(20),
        year smallint,
        holiday boolean
) DISTSTYLE AUTO
SORTKEY
    (dateid);

  1. โหลดข้อมูลปฏิทิน:
COPY public.DimCalendar
FROM 's3://redshift-blogs/dimensional-modeling-in-amazon-redshift/date.csv'
IAM_ROLE '<Your IAM role arn>'
DELIMITER ',' 
REGION 'us-east-1'
IGNOREHEADER 1

สร้างตารางขนาด

การออกแบบตารางมิติสามารถขึ้นอยู่กับความต้องการทางธุรกิจของคุณ ตัวอย่างเช่น คุณจำเป็นต้องติดตามการเปลี่ยนแปลงข้อมูลเมื่อเวลาผ่านไปหรือไม่ มี มิติข้อมูลที่แตกต่างกันเจ็ดประเภท. สำหรับตัวอย่างของเรา เราใช้ 1 ประเภท เพราะเราไม่ต้องติดตามการเปลี่ยนแปลงในอดีต สำหรับข้อมูลเพิ่มเติมเกี่ยวกับประเภทที่ 2 โปรดดูที่ ลดความซับซ้อนในการโหลดข้อมูลลงใน Type 2 ที่ค่อยๆ เปลี่ยนขนาดใน Amazon Redshift. ตารางขนาดจะถูกทำให้เป็นมาตรฐานด้วยคีย์หลัก คีย์ตัวแทน และฟิลด์เพิ่มเติมสองสามฟิลด์เพื่อระบุการเปลี่ยนแปลงในตาราง ดูรหัสต่อไปนี้:

create schema SalesMart;

CREATE TABLE SalesMart.DimVenue( 
    "VenueSkey" int IDENTITY(1,1) primary key
    ,"VenueId" VARCHAR NOT NULL
    ,"VenueName" VARCHAR NULL
    ,"VenueCity" VARCHAR NULL
    ,"VenueState" VARCHAR NULL
    ,"VenueSeats" INT NULL
    ,"InsertedDate" DATETIME NOT NULL
    ,"UpdatedDate" DATETIME NOT NULL
) 
diststyle AUTO;

ข้อควรทราบบางประการเกี่ยวกับการสร้างตารางมิติข้อมูล:

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

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

ใน Amazon Redshift โดยทั่วไปแล้ว คีย์ตัวแทนจะสร้างโดยใช้คีย์เวิร์ด IDENTITY ตัวอย่างเช่น คำสั่ง CREATE ก่อนหน้านี้สร้างตารางมิติที่มี a VenueSkey กุญแจตัวแทน เดอะ VenueSkey คอลัมน์จะถูกเติมโดยอัตโนมัติด้วยค่าที่ไม่ซ้ำเมื่อมีการเพิ่มแถวใหม่ลงในตาราง คอลัมน์นี้สามารถใช้เพื่อเข้าร่วมตารางสถานที่กับ FactSaleTransactions ตาราง

เคล็ดลับเล็กๆ น้อยๆ สำหรับการออกแบบกุญแจตัวแทน:

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

โหลดตารางสลัวโดยใช้ MERGE

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

CREATE OR REPLACE PROCEDURE SalesMart.DimVenueLoad()
AS $$
BEGIN
MERGE INTO SalesMart.DimVenue USING public.venue as MergeSource
ON SalesMart.DimVenue.VenueId = MergeSource.VenueId
WHEN MATCHED
THEN
UPDATE
SET VenueName = ISNULL(MergeSource.VenueName, 'Unknown')
, VenueCity = ISNULL(MergeSource.VenueCity, 'Unknown')
, VenueState = ISNULL(MergeSource.VenueState, 'Unknown')
, VenueSeats = ISNULL(MergeSource.VenueSeats, -1)
, UpdatedDate = GETDATE()
WHEN NOT MATCHED
THEN
INSERT (
VenueId
, VenueName
, VenueCity
, VenueState
, VenueSeats
, UpdatedDate
, InsertedDate
)
VALUES (
ISNULL(MergeSource.VenueId, -1)
, ISNULL(MergeSource.VenueName, 'Unknown')
, ISNULL(MergeSource.VenueCity, 'Unknown')
, ISNULL(MergeSource.VenueState, 'Unknown')
, ISNULL(MergeSource.VenueSeats, -1)
, ISNULL(GETDATE() , '1900-01-01')
, ISNULL(GETDATE() , '1900-01-01')
);
END;
$$
LANGUAGE plpgsql;

หมายเหตุเล็กน้อยเกี่ยวกับการโหลดมิติข้อมูล:

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

ระบุและดำเนินการตามข้อเท็จจริง

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

เราได้ระบุข้อเท็จจริงที่เป็นตัวเลขต่อไปนี้เพื่อวัด:

  • จำนวนตั๋วที่ขายต่อการขาย
  • ค่าคอมมิชชั่นสำหรับการขาย

การดำเนินการตามข้อเท็จจริง

มี ตารางข้อเท็จจริงสามประเภท (ตารางข้อเท็จจริงของธุรกรรม ตารางข้อเท็จจริงสแนปชอตเป็นระยะ และตารางข้อเท็จจริงสแนปชอตสะสม) แต่ละคนมีมุมมองที่แตกต่างกันเกี่ยวกับกระบวนการทางธุรกิจ ตัวอย่างเช่น เราใช้ตารางข้อเท็จจริงของธุรกรรม ทำตามขั้นตอนต่อไปนี้:

  1. สร้างตารางข้อเท็จจริง
CREATE TABLE SalesMart.FactSaleTransactions( 
    CalendarDate date NOT NULL
    ,SaleTransactionTime DATETIME NOT NULL
    ,VenueSkey INT NOT NULL
    ,QuantitySold BIGINT NOT NULL
    ,SaleComission NUMERIC NOT NULL
    ,InsertedDate DATETIME DEFAULT GETDATE()
) diststyle AUTO;

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

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

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

  1. สร้างกระบวนงานที่เก็บไว้ด้วยรหัสต่อไปนี้ เพื่อรักษาความสมบูรณ์ของข้อมูลแบบเดียวกับที่เราใช้ในการโหลดมิติ เราจะแทนที่ค่า NULL (ถ้ามี) ด้วยค่าที่เหมาะสมทางธุรกิจมากขึ้น:
create or replace procedure SalesMart.FactSaleTransactionsLoad(loadate datetime)
language plpgsql
as
    $$
begin
--------------------------------------------------------------------
/*** Delete records loaded for the day, should there be any ***/
--------------------------------------------------------------------
Delete from SalesMart.FactSaleTransactions
where cast(InsertedDate as date) = CAST(loadate as date);
RAISE INFO 'Deleted rows for load date: %', loadate;
--------------------------------------------------------------------
/*** Insert records ***/
--------------------------------------------------------------------
INSERT INTO SalesMart.FactSaleTransactions (
CalendarDate    
,SaleTransactionTime    
,VenueSkey  
,QuantitySold  
,Salecomission
)
SELECT DISTINCT
    ISNULL(c.caldate, '1900-01-01') as CalendarDate
    ,ISNULL(a.saletime, '1900-01-01') as SaleTransactionTime
    ,ISNULL(b.VenueSkey, -1) as VenueSkey
    ,ISNULL(a.qtysold, 0) as QuantitySold
    ,ISNULL(a.commission, 0) as SaleComission
FROM
    public.sales as a
 
LEFT JOIN SalesMart.DimVenue as b
on a.venueid = b.venueid
 
LEFT JOIN public.DimCalendar as c
on to_char(a.saletime,'YYYYMMDD') = to_char(c.caldate,'YYYYMMDD');
--Optional filter, should you want to load only the latest data from source
--where cast(a.saletime as date) = cast(loadate as date);
  
end;
$$;

  1. โหลดข้อมูลโดยเรียกโพรซีเดอร์ด้วยคำสั่งต่อไปนี้:
call SalesMart.FactSaleTransactionsLoad(getdate())

กำหนดการโหลดข้อมูล

ตอนนี้เราทำให้กระบวนการสร้างโมเดลเป็นแบบอัตโนมัติได้โดยการกำหนดเวลาขั้นตอนที่จัดเก็บไว้ใน Amazon Redshift Query Editor V2 ทำตามขั้นตอนต่อไปนี้:

  1. อันดับแรก เราเรียกการโหลดมิติ และหลังจากการโหลดมิติทำงานสำเร็จ การโหลดข้อเท็จจริงจะเริ่มต้นขึ้น:
BEGIN;
----Insert Dim Loads
call SalesMart.DimVenueLoad(); ----Insert Fact Loads. They will only run if the DimLoad is successful
call SalesMart.FactSaleTransactionsLoad(getdate());
END;

หากการโหลดมิติล้มเหลว การโหลดข้อเท็จจริงจะไม่ทำงาน การดำเนินการนี้ทำให้ข้อมูลมีความสอดคล้องกัน เนื่องจากเราไม่ต้องการโหลดตารางข้อเท็จจริงด้วยมิติข้อมูลที่ล้าสมัย

  1. หากต้องการกำหนดเวลาการโหลด ให้เลือก ตารางเวลา ในตัวแก้ไขแบบสอบถาม V2

  1. เรากำหนดเวลาการสืบค้นให้ทำงานทุกวันเวลา 5:00 น.
  2. คุณสามารถเพิ่มการแจ้งเตือนความล้มเหลวได้ด้วยการเปิดใช้งาน บริการแจ้งเตือนแบบง่ายของ Amazon การแจ้งเตือน (Amazon SNS)

รายงานและวิเคราะห์ข้อมูลใน Amazon Quicksight

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

เราใช้ data mart ของเราเพื่อนำเสนอข้อเท็จจริงในรูปแบบของแดชบอร์ด หากต้องการเริ่มต้นใช้งานและตั้งค่า QuickSight โปรดดูที่ การสร้างชุดข้อมูลโดยใช้ฐานข้อมูลที่ไม่มีการค้นหาอัตโนมัติ.

หลังจากที่คุณสร้างแหล่งข้อมูลของคุณใน QuickSight เราจะรวมข้อมูลจำลอง (ดาต้ามาร์ท) เข้าด้วยกันตามคีย์ตัวแทนของเรา skey. เราใช้ชุดข้อมูลนี้เพื่อแสดงภาพดาต้ามาร์ท

แดชบอร์ดท้ายของเราจะมีข้อมูลเชิงลึกของ data mart และตอบคำถามทางธุรกิจที่สำคัญ เช่น ค่าคอมมิชชั่นทั้งหมดต่อสถานที่และวันที่ที่มียอดขายสูงสุด ภาพหน้าจอต่อไปนี้แสดงผลิตภัณฑ์ขั้นสุดท้ายของดาต้ามาร์ท

ทำความสะอาด

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

สรุป

ตอนนี้เราได้ติดตั้ง data mart สำเร็จแล้วโดยใช้ของเรา DimVenue, DimCalendarและ FactSaleTransactions ตาราง คลังสินค้าของเรายังไม่สมบูรณ์ เนื่องจากเราสามารถขยายดาต้ามาร์ทด้วยข้อเท็จจริงที่มากขึ้นและใช้งานมาร์ทได้มากขึ้น และเมื่อกระบวนการทางธุรกิจและความต้องการเติบโตขึ้นเมื่อเวลาผ่านไป คลังข้อมูลก็เช่นกัน ในโพสต์นี้ เราได้ให้มุมมองแบบ end-to-end เกี่ยวกับการทำความเข้าใจและนำการสร้างแบบจำลองมิติไปใช้ใน Amazon Redshift

เริ่มต้นใช้งานของคุณ อเมซอน Redshift แบบจำลองมิติวันนี้


เกี่ยวกับผู้เขียน

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

อภิสิทธิ์ ปาน เป็นผู้เชี่ยวชาญ SA-Analytics ของ WWSO ที่ทำงานร่วมกับลูกค้าภาครัฐของ AWS India เขามีส่วนร่วมกับลูกค้าเพื่อกำหนดกลยุทธ์ที่ขับเคลื่อนด้วยข้อมูล จัดให้มีเซสชันเชิงลึกเกี่ยวกับกรณีการใช้งานการวิเคราะห์ และออกแบบแอปพลิเคชันเชิงวิเคราะห์ที่มีประสิทธิภาพและปรับขนาดได้ เขามีประสบการณ์ 12 ปีและหลงใหลเกี่ยวกับฐานข้อมูล การวิเคราะห์ และ AI/ML เขาเป็นนักเดินทางตัวยงและพยายามจับภาพโลกผ่านเลนส์กล้องของเขา

ประทับเวลา:

เพิ่มเติมจาก AWS ข้อมูลขนาดใหญ่

Convoy ใช้ Amazon QuickSight เพื่อช่วยให้ผู้จัดส่งและผู้ให้บริการขนส่งปรับปรุงประสิทธิภาพและประหยัดเงินด้วยการตัดสินใจจากข้อมูล

โหนดต้นทาง: 1895768
ประทับเวลา: ม.ค. 4, 2023