ระบบแจ้งเตือน : ระบบจะสามารถทำงานได้เต็มประสิทธิภาพต่อเมื่อทำงานบน IE Version 8.0 ขึ้นไป [Download]
หน้าหลักระบบบริหารจัดการความรู้ ทีมงานพัฒนาระบบ ทีมงานพัฒนาระบบ
E-Mail(มหาวิทยาลัย)

Password

** รหัสผ่านเดียวกับที่ใช้ในระบบ e-mail มหาวิทยาลัย
 
รายละเอียดบทความ
ตอนที่ 1 : ข้อมูลผู้เขียนบทความ
รหัสอ้างอิง : 1382
ชื่อสมาชิก : สายัณห์ อุ่นนันกาศ
เพศ : ชาย
อีเมล์ : sayan@mju.ac.th
ประเภทสมาชิก : บุคลากรภายใน [สังกัด]
ลงทะเบียนเมื่อ : 1/8/2556 13:28:20
แก้ไขล่าสุดเมื่อ : 1/8/2556 13:28:20
URL สำหรับอ้างอิงถึงหน้านี้
ตอนที่ 2 : ระดับความชอบที่ผู้อ่านมีต่อบทความนี้
ชอบ  0  คน ไม่ชอบ  0  คน
ตอนที่ 3 : รายละเอียดบทความ
Oracle JSON Document Store
รายงานสรุปเนื้อหาและการนำไปใช้ประโยชน์ จากการเข้าร่วมโครงการฝึกอบรม 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);

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

       

คำสำคัญ : json oracle 12c
กลุ่มบทความ : บทความการแลกเปลี่ยนเรียนรู้ทั่วไป
หมวดหมู่ : วิทยาศาสตร์ เทคโนโลยี
สถิติการเข้าถึง : เปิดอ่าน 7594  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
วันที่เขียน 14/6/2561 17:02:05  แก้ไขล่าสุดเมื่อ 20/4/2567 19:34:00
ตอนที่ 4 : รายการความคิดเห็นทั้งหมดที่มีต่อบทความนี้
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด

ระบบสารสนเทศเพื่อการบริหาร : Management Information System [MIS]
รับผิดชอบระบบ โดย ศูนย์เทคโนโลยีสารนสนเทศ มหาวิทยาลัย
ติดต่อสอบถาม : ศูนย์เทคโนโลยีสารสนเทศ มหาวิทยาลัย 63 หมู่ 4 ต.หนองหาร อ.สันทราย จ.เชียงใหม่ 50290