ตั้งค่าตารางแฟคท์และระบุไดเมนชันจุดอ้างอิง

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

ก่อนเริ่มศึกษาหมวดนี้ ให้สร้างแอปพลิเคชันและลูกบาศก์ Essbase ก่อนหากยังไม่มี

สร้างตารางแฟคท์

สำหรับพาร์ติชันแบบรวมศูนย์ ตารางแฟคท์จะจัดเก็บค่าข้อมูลของลูกบาศก์ Essbase หากคุณไม่มีตารางแฟคท์ที่จำเป็นใน Autonomous Data Warehouse คุณต้องสร้างตารางแฟคต์ก่อน

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

ตารางแฟคท์ต้องอยู่ในรูปแบบที่พร้อมใช้งานใน Essbase หมายความว่าจะต้องเป็นไปตามข้อกำหนดต่อไปนี้สำหรับเนื้อหาและ Shape:

  • ไดเมนชัน (ที่ไม่ใช่แอททริบิว) แต่ละรายการของลูกบาศก์จะต้องแทนด้วยส่วนหัวคอลัมน์เดียว โดยมีข้อยกเว้นว่าหนึ่งในไดเมนชันของลูกบาศก์ (โดยทั่วไปมักเป็นไดเมนชันที่มีการวัด/แอคเคาท์) จะต้องมีจุดอ้างอิงในคอลัมน์อย่างน้อยสองคอลัมน์

    หมายเหตุ:

    สำหรับเนื้อหาส่วนอื่นๆ ในเอกสาร ไดเมนชันที่มีจุดอ้างอิงจะเรียกว่าไดเมนชันจุดอ้างอิง

  • ตารางแฟคท์ต้องประกอบไปด้วยเรคคอร์ดที่ไม่ซ้ำ (ไม่มีรายการที่ซ้ำกัน) โดยที่มีหนึ่งแถวต่อลำดับเซลล์อินเตอร์เซกชันของ Essbase

หากคุณคุ้นเคยกับการเอ็กซ์ปอร์ตข้อมูล Essbase อยู่แล้ว คุณจะสังเกตเห็นว่ารูปทรงของตารางแฟคท์จะเหมือนกับ Essbase การเอ็กซ์ปอร์ตคอลัมน์

เช่นเดียวกันกับการเอ็กซ์ปอร์ตคอลัมน์ ตารางแฟคท์ต้องประกอบไปด้วย:

  • หนึ่งคอลัมน์สำหรับแต่ละไดเมนชัน (ไม่ใช่แอททริบิว) ของเอาต์ไลน์ (ยกเว้นไดเมนชันจุดอ้างอิง)

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

ต่อไปนี้เป็นตัวอย่างของตารางแฟคท์ที่ไดเมนชันการวัดมีจุดอ้างอิง ซึ่งหมายความว่าเป็น ไดเมนชันจุดอ้างอิง ไดเมนชันจุดอ้างอิงส่งผลกระทบต่อรูปทรงของตารางแฟคท์ เมื่อสมาชิกที่ไดเมนชันจัดเก็บกลายเป็นส่วนหัวคอลัมน์: SALES, COGS, MARKETING, PAYROLL, MISC, INTITIAL_INVENTORY และ ADDITIONS


ตารางแฟคท์ที่มีข้อมูลแบบดีนอร์มัลไลซ์และเมตะดาต้า

คุณสามารถสร้างตารางแฟคท์โดยใช้ SQL หรือสร้างจากการเอ็กซ์ปอร์ตข้อมูล Essbase ก็ได้ คุณสามารถโหลดข้อมูลไปยังตารางแฟคท์ได้โดยใช้เครื่องมือ Autonomous Data Warehouse หรือใช้ฟังก์ชันการทำงานโหลดข้อมูล Essbase

คำแนะนำเพิ่มเติมสำหรับการสร้างตารางแฟคท์ประกอบด้วย:

  • ตารางแฟคท์ต้องมีคอลัมน์น้อยกว่า 1,000 คอลัมน์

  • ไม่รวมคอลัมน์ที่จะแมปในEssbase ไปยังไดเมนชันแอททริบิว

  • ตารางแฟคท์ไม่ควรมีจุดทศนิยมต่ำกว่า IEEE binary64 (ดับเบิล)

  • ตารางแฟคท์ควรมีสตริงที่ปรับเป็นสากลสำหรับสมาชิกไดเมนชัน โดยใช้ประเภท NVARCHAR2 และมีความยาวอักขระ 1024 บิต

ตัวอย่างการสร้างตารางแฟคท์

หากคุณต้องการสร้างตารางแฟคท์ใน Autonomous Data Warehouse ให้ใช้ SQL

  1. ใช้ SQL Developer หรือเครื่องมือที่คุณเลือกเพื่อล็อกอินเข้าสู่ Autonomous Data Warehouse ในฐานะเจ้าของสคีมา (จากขั้นตอน สร้างสคีมาสำหรับพาร์ติชันแบบรวมศูนย์)

  2. ใช้ SQL เพื่อสร้างตารางแฟคท์ หากคุณยังไม่มี

    ตัวอย่างเช่น SQL ต่อไปนี้จะสร้างตารางแฟคท์จากการเอ็กซ์ปอร์ตข้อมูลจากลูกบาศก์ Essbase ที่ชื่อ Sample Basic

    CREATE TABLE "SAMP_FACT"
    ( "PRODUCT" NVARCHAR2(1024),
    "MARKET" NVARCHAR2(1024),
    "YEAR" NVARCHAR2(1024),
    "SCENARIO" NVARCHAR2(1024),
    "SALES" NUMBER(38,0),
    "COGS" NUMBER(38,0),
    "MARKETING" NUMBER(38,0),
    "PAYROLL" NUMBER(38,0),
    "MISC" NUMBER(38,0),
    "INITIAL_INVENTORY" NUMBER(38,0),
    "ADDITIONS" NUMBER(38,0)
    ) NOCOMPRESS LOGGING PARALLEL 4;

หมายเหตุ

  • ในตัวอย่างข้างต้น ชื่อตารางแฟคท์คือ SAMP_FACT และอ้างอิงตาม Sample Basic

  • เพื่อประสิทธิภาพที่ดีที่สุด คอลัมน์ทั้งหมดที่ไม่ใช่ตัวเลขในตารางแฟคท์ต้องเป็นประเภท NVARCHAR2(1024) และคอลัมน์ที่เป็นตัวเลขทั้งหมดต้องเป็นประเภท NUMBER

  • Oracle แนะนำให้ใช้งานการสร้างดัชนีแบบขนานใน Autonomous Data Warehouse โดยการเพิ่ม PARALLEL 4

  • คอลัมน์เมตะดาต้าไม่ควรอนุญาตการรวมค่า NULL

  • Oracle จะแนะนำ NOCOMPRESS เมื่อการใช้ลูกบาศก์รวมถึงกระบวนการสร้างข้อมูล เช่น การโหลดข้อมูลส่วนเพิ่มหรือการอัปเดตสคริปต์แบบแบทช์ หากจะใช้ลูกบาศก์เพื่อการอ่านเป็นส่วนใหญ่ ให้ใช้ COMPRESS เพื่อออปติไมซ์ตารางแฟคท์สำหรับการรายงาน

  • หากคุณได้รับข้อผิดพลาดจากการตรวจสอบต่อไปนี้เมื่อสร้างตารางแฟคท์ ให้ลบแถวที่เป็นนัลออก

    ORA-18265: fact table key column ("<DIM_NAME>") with value ('') not in
          dimension("<Name_of_Column") star table key column
  • เพื่อประสิทธิภาพที่ดีที่สุด อย่าเพิ่มข้อจำกัดที่เฉพาะเจาะจงใดๆ ลงในตารางโดยไม่มีความต้องการที่ชัดเจน

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

ระบุไดเมนชันจุดอ้างอิง

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

  • ไดเมนชันจุดอ้างอิงไม่ต้องเป็นการวัด/แอคเคาท์เสมอไป แต่อาจเป็นได้

  • สมาชิกที่จัดเก็บไว้ทั้งหมดของไดเมนชันจุดอ้างอิงต้องแมปกับคอลัมน์ในตารางแฟคท์ ซึ่งแสดงค่าข้อมูลตัวเลขของคุณใน Autonomous Data Warehouse

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

  • ไดเมนชันจุดอ้างอิงต้องมีชื่อสมาชิกแบบสแตติกที่เป็นกลาง และไม่ได้มีจำนวนสมาชิกมาก เหตุผล: การเปลี่ยนไดเมนชันจุดอ้างอิงในเอาต์ไลน์ของลูกบาศก์ Essbase (ตัวอย่างเช่น การเพิ่มหรือการเปลี่ยนชื่อสมาชิกที่จัดเก็บไว้) จะบังคับให้มีการอัปเดตด้วยตนเองที่เกี่ยวข้องกับตารางแฟคท์ใน Autonomous Data Warehouse และจำเป็นต้องมีการสร้างพาร์ติชันแบบรวมศูนย์อีกครั้ง

  • ไม่ควรเลือกไดเมนชัน Essbase ที่รวมสมาชิกที่ต้องใช้สูตรแบบไดนามิคที่ซับซ้อน (เช่น "Opening Inventory" และ "Ending Inventory" โดยใช้ Sample Basic เป็นต้น) เป็นไดเมนชันจุดอ้างอิง

  • คุณระบุไดเมนชันจุดอ้างอิงที่เลือกไว้ของคุณ ในขณะที่มีการสร้างพาร์ติชันแบบรวมศูนย์

  • ฐานข้อมูล Oracle มีขีดจำกัด 1,000 คอลัมน์ และไดเมนชันจุดอ้างอิงรับช่วงขีดจำกัดนี้ พิจารณาจำนวนสมาชิกคอลัมน์ที่มีสิทธิ์ในไดเมนชันจุดอ้างอิง เพื่อให้แน่ใจว่าจะไม่พบกับขีดจำกัด จำนวนการผสมผสานระหว่างสมาชิกที่อาจจัดเก็บไว้ในไดเมนชันจุดอ้างอิง บวกกับจำนวนไดเมนชันในลูกบาศก์จะต้องไม่เกิน 1,000

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