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