Oracle JSON Document Store
วันที่เขียน 14/6/2561 17:02:05     แก้ไขล่าสุดเมื่อ 3/11/2569 17:52:31
เปิดอ่าน: 9999 ครั้ง

รายงานสรุปเนื้อหาและการนำไปใช้ประโยชน์ จากการเข้าร่วมโครงการฝึกอบรม Oracle Excellence Academic Workshop 2018 หลักสูตร Oracle Database 12c Administration Essentials and Application Development Techniques for Enterprise Developer ในระหว่างวันที่ 26 - 27 พฤษภาคม 2561 ห้องประชุมชั้น 15 อาคาร 90 ปี มหาวิทยาลัยราชภัฎเชียงใหม่ ตามหนังสือขออนุญาตเดินทางไปราชการ เลขที่ ศธ 0523.4.8/86 ลงวันที่ 17 เมษายน 2561

Oracle JSON Document Store

          การจัดเก็บข้อมูลในรูปแบบของ JSON Document นั้น โดยปกติจะถูกจัดเก็บในรูปแบบของ NoSQL Database ซึ่งเป็นระบบฐานข้อมูลที่ใช้สำหรับระบบฐานข้อมูลที่มีขนาดใหญ่ และ อยู่ในรูปแบบกระจาย (Large and Distributed Databases) โดยรูปแบบการจัดเก็บอยู่ในรูปแบบของ Key, Value ซึ่งแต่ละข้อมูลจะถูกกำหนด Unique key เพื่อไม่ให้เกิดความซ้ำซ้อนของข้อมูล โดยใช้ Key เป็นตัวจัดการเข้าถึงข้อมูลนั้น ๆ ประโยชน์ของการจัดเก็บข้อมูลแบบ NoSQL สามารถแบ่งได้เป็น 3 ส่วนดังนี้

-  Elastic Scaling การยืดหยุ่นในการขยายการจัดเก็บข้อมูลได้มากขึ้น โดยสามารถจัดเก็บในรูปแบบของการกระจายข้อมูลที่มีหลาย ๆ โฮส ได้
-  Big Data สำหรับจัดเก็บข้อมูลที่มีขนาดใหญ่ ซึ่งระบบการจัดการฐานข้อมูลเชิงสัมพันธ์ (RDMS) ไม่สามารถรองรับได้
-  DBA Specialists เหมาะสำหรับผู้ที่ไม่จำเป็นต้องมีความเชี่ยวชาญมากในการจัดการฐานข้อมูล โดย RDMS จะต้องการผู้เชี่ยวชาญที่มีความสามารถสูงในการจัดการข้อมูล แต่ NoSQL ไม่จำเป็น

โดย NoSQL ก็จะมีข้อเสีย ซึ่งสามารถแบ่งเป็น 3 ส่วนเช่นกันคือ
-  Administration โดยที่ NoSQL ไม่มีการกำหนดผู้ดูแลระบบอย่างชัดเจน
-  Analytics and Business Intelligence ไม่เหมาะสมสำหรับการทำ ac hoc query เพราะได้ถูกออกแบบมาใช้สำหรับ Web 2.0
-  Lack of Expertise ผู้ที่เชี่ยวชาญทางด้าน NoSQL ยังมีน้อย

 ตัวอย่างการเก็บข้อมูลแบบ JSON

 

Array in JSON

ในกรณีที่ข้อมูลมีหลายชุด สามารถจัดทำเป็นข้อมูลประเภท Array ได้ โดยให้อยู่ในรูปของ [ ] และ แยกชุดข้อมูลด้วยเครื่องหมาย Comma (,)

 

ในกรณีที่มีข้อมูลที่ซับซ้อน สามารถเขียนได้ดังนี้

 

โดย Oracle Database 12c สามารถที่จะรองรับการจัดเก็บข้อมูลในรูปแบบของ JSON ได้

 

-   สามารถจัดเก็บและจัดการข้อมูลในรูปแบบของ JSON และ XML ได้
-   เข้าถึงข้อมูลโดยใช้ภาษาในการเขียนโปรแกรมได้
-   สามารถใช้คำสั่ง Query โดยใช้ JSON Path, XQuery และ SQL ได้
-   จัดการ indexing ได้
-   ไม่จำเป็นต้องเรียน SQL หรือ DBA เพิ่มเติมสำหรับนักพัฒนาซอฟต์แวร์
-   รองรับการทำงาน DevOPS paradigm

การนำเข้าข้อมูล JSON ไปยัง Oracle Database

-  สร้างตารางสำหรับจัดเก็บข้อมูล โดยชนิดของข้อมูลที่สามารถจัดเก็บ JSON ได้ คือ CLOB, BLOB และ VARCHAR2 เท่านั้น

SQL > DROP TABLE products;
SQL > CREATE TABLE products (
prod_id NUMBER NOT NULL PRIMARY KEY,
product_info CLOB,
CONSTRAINT product_info_json_chk CHECK (product_info IS JSON (STRICT)));

-   การนำเข้าข้อมูลโดยการเพิ่มข้อมูลเข้าไปทีละแถว ดังนี้

SQL>insert into products  values (2,
'{

"name" : "Cable TV Basic Service Package",
"type" : "tv",
"monthly_price" : 50,
"term_years" : 2,
"cancel_penalty" : 25,
"sales_tax" : true,
"additional_tariffs" :
[
{
"kind" : "federal tariff",
"amount" : { "percent_of_service" : 0.06 }
},
{
"kind" : "misc tariff",
"amount" : 2.25
}
]
}'
);

SQL > commit;

-   การเพิ่มข้อมูลจากการอ่านไฟล์จากภายนอก

 1) สร้างตารางสำหรับจัดเก็บข้อมูล

Create table J_PURCHASEORDER
(ID RAW(16) NOT NULL,DATE_LOADED TIMESTAMP(6) WITH TIME ZONE,
 PO_DOCUMENT CLOB CHECK (PO_DOCUMENT IS JSON));

 2) กำหนดสิทธิ์ในการอ่านข้อมูลจากโฟล์เดอร์ที่ต้องการ

CONNECT SYS/password as sysdba
CREATE OR REPLACE DIRECTORY order_entry_dir AS 'C:\LAB';
GRANT READ,WRITE ON DIRECTORY order_entry_dir TO HR;

 3) สร้างตารางสำหรับผู้ใช้ HR สำหรับการเข้าถึงข้อมูล JSON โดยระบุชื่อไฟล์ที่จะนำเข้าคือ PurchaseOrders.dmp

CONNECT hr/password
DROP TABLE json_dump_file_contents;
CREATE TABLE json_dump_file_contents (json_document CLOB)
ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY order_entry_dir
ACCESS PARAMETERS
(RECORDS DELIMITED BY 0x'0A'
FIELDS (json_document CHAR(5000)))
LOCATION (order_entry_dir:'PurchaseOrders.dmp'))
PARALLEL;

 4) เพิ่มข้อมูลเข้าไปในตาราง j_purchaseorder ที่ได้สร้างไว้

INSERT INTO j_purchaseorder
SELECT SYS_GUID(), SYSTIMESTAMP, json_document FROM json_dump_file_contents
WHERE json_document IS JSON;
COMMIT;

 -   การ Query ข้อมูลจาก JSON Table สามารถทำได้ดังตัวอย่างต่อไปนี้

SELECT
JSON_VALUE(PO_DOCUMENT ,'$.PONumber') PO,
JSON_VALUE(PO_DOCUMENT ,'$.Reference') REFERENCE,
JSON_VALUE(PO_DOCUMENT ,'$.CostCenter') COSTCNTER,
JSON_VALUE(PO_DOCUMENT ,'$.ShippingInstructions.name') NAME
from J_PURCHASEORDER
where JSON_VALUE(PO_DOCUMENT ,'$.PONumber') IN (1600,1700);

     ซึ่งจะปรากฎผลลัพธ์ดังรูปต่อไปนี้

       

คำสำคัญ :
กลุ่มบทความ :
หมวดหมู่ :
แชร์ :
https://erp.mju.ac.th/acticleDetail.aspx?qid=804
ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : วิทยาศาสตร์ เทคโนโลยี
การ KM เพื่อเผยแพร่ผลของการนำความรู้ที่ได้จากการเข้าร่วมอบรมสัมมนา » ผ้าซิ่นตีนจกพญาเมืองลองไทยโทนคราม
การบูรณาการวิทยาศาสตร์สีธรรมชาติกับภูมิปัญญาสิ่งทอเพื่อสร้างคุณค่าและอัตลักษณ์ท้องถิ่น ผ้าซิ่นตีนจกพญาเมืองลองนับเป็นหนึ่งในมรดกทางภูมิปัญญาด้านสิ่งทอที่สะท้อนอัตลักษณ์ทางวัฒนธรรมของเมืองลอง จังหว...
ผ้าซิ่นตีนจกพญาเมืองลองไทยโทนคราม หม้อห้อมย้อมธรรมชาติ พญาเมืองลอง ไทยโทนคราม     บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน ณัฐพร จันทร์ฉาย  วันที่เขียน 12/9/2569 11:56:57  แก้ไขล่าสุดเมื่อ 2/11/2569 2:21:21   เปิดอ่าน 124  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การ KM เพื่อเผยแพร่ผลของการนำความรู้ที่ได้จากการเข้าร่วมอบรมสัมมนา » การสร้างอัตลักษณ์ชุมชนตำบลแม่ทรายผ่านเครื่องแต่งกายพื้นถิ่นผ้าหม้อห้อมลาย “แม่ทราย”
องค์ความรู้จากโครงการนี้เกิดจากการนำ ทุนทางวัฒนธรรมของจังหวัดแพร่ คือ “ผ้าหม้อห้อม” มาผสมผสานกับ เรื่องราวและบริบททางสังคมของตำบลแม่ทราย ซึ่งเป็นชุมชนที่เกิดจากการอพยพและการตั้งถิ่นฐานของผู้คนจากหล...
หม้อห้อม บาติก แม่ทราย กาวกั้นลาย     บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน ณัฐพร จันทร์ฉาย  วันที่เขียน 12/9/2569 11:52:52  แก้ไขล่าสุดเมื่อ 2/11/2569 21:56:40   เปิดอ่าน 119  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การ KM เพื่อเผยแพร่ผลของการนำความรู้ที่ได้จากการเข้าร่วมอบรมสัมมนา » องค์ความรู้จากการประเมินมาตรฐานสินค้าสิ่งบ่งชี้ทางภูมิศาสตร์ (GI) ส้มโอขาวน้ำผึ้งเมืองลอง
จากการตรวจประเมินมาตรฐานสินค้าสิ่งบ่งชี้ทางภูมิศาสตร์ (GI) ของส้มโอขาวน้ำผึ้งเมืองลองจากเกษตรกรจำนวน 6 ราย ในพื้นที่อำเภอลอง จังหวัดแพร่ พบว่า ผลผลิตมีอัตลักษณ์ด้านคุณภาพที่โดดเด่น โดยเฉพาะน้ำหนักผ...
ส้มโอขาวน้ำผึ้งเมืองลอง GI ความหวาน ไม่เฝื่อนไม่ขมไม่ซ่าลิ้น     บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน ณัฐพร จันทร์ฉาย  วันที่เขียน 12/9/2569 11:46:25  แก้ไขล่าสุดเมื่อ 3/11/2569 2:39:45   เปิดอ่าน 97  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การ KM เพื่อเผยแพร่ผลของการนำความรู้ที่ได้จากการเข้าร่วมอบรมสัมมนา » องค์ความรู้ (KM) เรื่องกาวกั้นสีจากกลอย
องค์ความรู้เรื่องการพัฒนากาวกั้นสีจากกลอย การพัฒนากาวกั้นสีจากกลอยเป็นการนำทรัพยากรท้องถิ่นของจังหวัดแพร่มาประยุกต์ใช้ร่วมกับองค์ความรู้ทางวิทยาศาสตร์และชีวนวัตกรรม เพื่อสร้างวัสดุกั้นสีจากธรรมชาต...
หม้อหม้อบาติก กาวกลอย เอนไซม์ CCD     บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน ณัฐพร จันทร์ฉาย  วันที่เขียน 12/9/2569 11:33:31  แก้ไขล่าสุดเมื่อ 3/11/2569 14:00:42   เปิดอ่าน 113  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การ KM เพื่อเผยแพร่ผลของการนำความรู้ที่ได้จากการเข้าร่วมอบรมสัมมนา » ชีวนวัตกรรมการผลิตหม้อห้อมบาติก ด้วยการพัฒนากาวกั้นสีจากหัวกลอยท้องถิ่นจังหวัดเเพร่
โครงการ ชีวนวัตกรรมการผลิตหม้อห้อมบาติก ด้วยการพัฒนากาวกั้นสีจากหัวกลอยท้องถิ่นจังหวัดแพร่ มีวัตถุประสงค์เพื่อพัฒนากระบวนการผลิตผ้าหม้อห้อมให้เป็นมิตรต่อสิ่งแวดล้อม ลดการใช้สารเคมี และยกระดับคุณภาพ...
กลอย กาวกลอย บาติก บาดานา ชีวนวัตกรรม     บทความการแลกเปลี่ยนเรียนรู้ทั่วไป   วิทยาศาสตร์ เทคโนโลยี
ผู้เขียน ณัฐพร จันทร์ฉาย  วันที่เขียน 12/9/2569 11:27:39  แก้ไขล่าสุดเมื่อ 3/11/2569 13:26:20   เปิดอ่าน 103  ครั้ง | แสดงความคิดเห็น 0  ครั้ง