1. บทนำ

กิจกรรมที่เป็นการฉ้อโกงมักเกี่ยวข้องกับเครือข่ายที่ซ่อนอยู่ของเอนทิตีที่เชื่อมต่อกัน เช่น บัญชีหลายบัญชีที่ใช้อีเมล หมายเลขโทรศัพท์ หรือที่อยู่จริงเดียวกัน ฐานข้อมูลเชิงสัมพันธ์แบบดั้งเดิมอาจมีปัญหาในการค้นหาความสัมพันธ์ที่ซับซ้อนและมีหลายขั้นตอนเหล่านี้อย่างมีประสิทธิภาพ
กราฟ BigQuery ช่วยให้คุณวิเคราะห์เครือข่ายเหล่านี้ได้ในวงกว้างโดยใช้ฐานข้อมูลกราฟ คุณสามารถกำหนดกราฟพร็อพเพอร์ตี้บนตาราง BigQuery ที่มีอยู่ และใช้ Graph Query Language (GQL) เพื่อค้นหารูปแบบในข้อมูลได้
การประยุกต์ใช้เครือข่ายกราฟที่พบบ่อยในการตรวจหาการประพฤติมิชอบคือการหยุดคำสั่งซื้อที่มีที่อยู่สำหรับจัดส่งที่เชื่อมโยงกับเครือข่ายการประพฤติมิชอบ หรือการหยุดการชำระเงินที่อยู่ใน
ใน Codelab นี้ คุณจะได้สร้างโซลูชันการตรวจจับการฉ้อโกงโดยใช้กราฟ BigQuery คุณจะโหลดข้อมูลจาก Cloud Storage สร้างกราฟพร็อพเพอร์ตี้ และใช้การค้นหากราฟเพื่อระบุการเชื่อมต่อที่น่าสงสัย
สิ่งที่คุณจะได้เรียนรู้
- วิธีสร้างชุดข้อมูล BigQuery และโหลดข้อมูล
- วิธีกำหนดกราฟพร็อพเพอร์ตี้โดยใช้ DDL
- วิธีค้นหากราฟโดยใช้ GQL
- วิธีใช้การวิเคราะห์กราฟเพื่อตรวจหาการฉ้อโกง
สิ่งที่คุณต้องมี
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน
- สภาพแวดล้อมของสมุดบันทึก BigQuery (BigQuery Studio หรือ Colab Enterprise)
ค่าใช้จ่าย
Lab นี้ใช้ทรัพยากร Google Cloud ที่เรียกเก็บเงินได้ ค่าใช้จ่ายโดยประมาณจะต่ำกว่า $5 หากคุณลบทรัพยากรหลังจากดำเนินการเสร็จสิ้น
2. ก่อนเริ่มต้น
เลือกหรือสร้างโปรเจ็กต์ Google Cloud
- ในคอนโซล Google Cloud ในหน้าตัวเลือกโปรเจ็กต์ ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud
- ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Google Cloud แล้ว ดูวิธีตรวจสอบว่าเปิดใช้การเรียกเก็บเงินอยู่หรือไม่
เลือกสภาพแวดล้อม
คุณจะต้องมีสภาพแวดล้อมสมุดบันทึกเพื่อเรียกใช้แล็บนี้ คุณใช้ BigQuery Studio หรือ Colab Enterprise ได้
- ไปที่หน้า BigQuery ในคอนโซล Google Cloud
- คุณจะใช้สมุดบันทึก Python เพื่อเรียกใช้การค้นหากราฟ
เริ่มต้น Cloud Shell
- คลิกเปิดใช้งาน Cloud Shell ที่ด้านบนของคอนโซล Google Cloud
- ยืนยันการตรวจสอบสิทธิ์
gcloud auth list
- ยืนยันโปรเจ็กต์
gcloud config get project
- ตั้งค่าหากจำเป็น
export PROJECT_ID=<YOUR_PROJECT_ID>
gcloud config set project $PROJECT_ID
เปิดใช้ API
เรียกใช้คำสั่งนี้เพื่อเปิดใช้ BigQuery API ที่จำเป็น
gcloud services enable bigquery.googleapis.com
3. โหลดข้อมูล
ในขั้นตอนนี้ คุณจะสร้างชุดข้อมูล BigQuery และโหลดข้อมูลตัวอย่างจาก Cloud Storage
ข้อมูลตัวอย่างประกอบด้วยไฟล์ CSV หลายไฟล์ที่แสดงสภาพแวดล้อมการค้าปลีกจำลอง ดังนี้
customers.csv: ข้อมูลบัญชีลูกค้าemails.csv: อีเมลphones.csv: หมายเลขโทรศัพท์addresses.csv: ที่อยู่จริงcustomer_emails.csv,customer_phones.csv,customer_addresses.csv: การลิงก์ตารางorders.csv: ประวัติการสั่งซื้อ รวมถึงการแจ้งว่าเป็นการฉ้อโกง
สร้างชุดข้อมูล
สร้างชุดข้อมูลชื่อ fraud_demo เพื่อเก็บตาราง
- สำหรับ Codelab นี้ เราจะเรียกใช้คำสั่ง SQL คุณเรียกใช้คำสั่งเหล่านี้ได้ใน BigQuery Studio > SQL Editor หรือใช้คำสั่ง
bq queryใน Cloud Shell
เราจะถือว่าคุณใช้โปรแกรมแก้ไข SQL ของ BigQuery เพื่อให้ได้รับประสบการณ์การใช้งานที่ดียิ่งขึ้นกับคำสั่งสร้างแบบหลายบรรทัด
CREATE SCHEMA IF NOT EXISTS `fraud_demo` OPTIONS(location="US");
โหลดตาราง
เรียกใช้คำสั่ง SQL ต่อไปนี้เพื่อโหลดข้อมูลจาก Cloud Storage ลงในชุดข้อมูล
LOAD DATA OVERWRITE `fraud_demo.customers`
FROM FILES (
format = 'CSV',
uris = ['gs://sample-data-and-media/fraud-demo-data/customers.csv'],
skip_leading_rows = 1
);
LOAD DATA OVERWRITE `fraud_demo.emails`
FROM FILES (
format = 'CSV',
uris = ['gs://sample-data-and-media/fraud-demo-data/emails.csv'],
skip_leading_rows = 1
);
LOAD DATA OVERWRITE `fraud_demo.phones`
FROM FILES (
format = 'CSV',
uris = ['gs://sample-data-and-media/fraud-demo-data/phones.csv'],
skip_leading_rows = 1
);
LOAD DATA OVERWRITE `fraud_demo.addresses`
FROM FILES (
format = 'CSV',
uris = ['gs://sample-data-and-media/fraud-demo-data/addresses.csv'],
skip_leading_rows = 1
);
LOAD DATA OVERWRITE `fraud_demo.customer_emails`
FROM FILES (
format = 'CSV',
uris = ['gs://sample-data-and-media/fraud-demo-data/customer_emails.csv'],
skip_leading_rows = 1
);
LOAD DATA OVERWRITE `fraud_demo.customer_phones`
FROM FILES (
format = 'CSV',
uris = ['gs://sample-data-and-media/fraud-demo-data/customer_phones.csv'],
skip_leading_rows = 1
);
LOAD DATA OVERWRITE `fraud_demo.customer_addresses`
FROM FILES (
format = 'CSV',
uris = ['gs://sample-data-and-media/fraud-demo-data/customer_addresses.csv'],
skip_leading_rows = 1
);
LOAD DATA OVERWRITE `fraud_demo.orders`
FROM FILES (
format = 'CSV',
uris = ['gs://sample-data-and-media/fraud-demo-data/orders.csv'],
skip_leading_rows = 1
);
4. สร้างกราฟพร็อพเพอร์ตี้
เมื่อโหลดข้อมูลแล้ว คุณจะกำหนดกราฟพร็อพเพอร์ตี้ได้ กราฟพร็อพเพอร์ตี้ประกอบด้วยโหนด (เอนทิตี) และขอบ (ความสัมพันธ์)
ใน Lab นี้ โหนดมีดังนี้
- ลูกค้า: แสดงถึงเจ้าของบัญชี
- โทรศัพท์: แสดงหมายเลขโทรศัพท์
- อีเมล: แสดงถึงอีเมล
- ที่อยู่: แสดงถึงที่อยู่จริง
โดยขอบเขตมีดังนี้
- OwnsPhone: เชื่อมต่อลูกค้ากับโทรศัพท์
- OwnsEmail: เชื่อมต่อลูกค้ากับอีเมล
- LinkedToAddress: เชื่อมต่อลูกค้ากับที่อยู่

สร้างกราฟ
เรียกใช้คำสั่ง DDL ต่อไปนี้เพื่อสร้างกราฟชื่อ FraudDemo ในชุดข้อมูล fraud_demo
CREATE OR REPLACE PROPERTY GRAPH fraud_demo.FraudDemo
NODE TABLES(
fraud_demo.customers
KEY(account_id)
LABEL Customer PROPERTIES(
account_id,
name),
fraud_demo.emails
KEY(email)
LABEL Email PROPERTIES(
email,
email_type),
fraud_demo.phones
KEY(phone_number)
LABEL Phone PROPERTIES(
phone_number,
phone_type),
fraud_demo.addresses
KEY(address)
LABEL Address PROPERTIES(
address,
address_type)
)
EDGE TABLES(
fraud_demo.customer_emails
KEY(account_id, email)
SOURCE KEY(account_id) REFERENCES customers(account_id)
DESTINATION KEY(email) REFERENCES emails(email)
LABEL OwnsEmail PROPERTIES(
account_id,
email,
last_updated_ts),
fraud_demo.customer_phones
KEY(account_id, phone_number)
SOURCE KEY(account_id) REFERENCES customers(account_id)
DESTINATION KEY(phone_number) REFERENCES phones(phone_number)
LABEL OwnsPhone PROPERTIES(
account_id,
phone_number,
last_updated_ts),
fraud_demo.customer_addresses
KEY(account_id, address)
SOURCE KEY(account_id) REFERENCES customers(account_id)
DESTINATION KEY(address) REFERENCES addresses(address)
LABEL LinkedToAddress PROPERTIES(
account_id,
address,
last_updated_ts)
);
5. วิเคราะห์เครือข่าย (2-Hop)
เปิด Notebook ใหม่ใน BigQuery Studio

สำหรับส่วนการแสดงภาพและคำแนะนำของ Codelab นี้ เราจะใช้สมุดบันทึก Google Colab ใน BigQuery Studio ซึ่งช่วยให้เราเห็นภาพผลลัพธ์ของกราฟได้อย่างง่ายดาย
BigQuery Graph Notebook ได้รับการติดตั้งใช้งานเป็น IPython Magics การเพิ่มคำสั่งวิเศษ %%bigquery ด้วยฟังก์ชัน TO_JSON จะช่วยให้คุณเห็นภาพผลลัพธ์ได้ตามที่แสดงในส่วนต่อไปนี้ ในขั้นตอนนี้ คุณจะเรียกใช้การค้นหากราฟเพื่อค้นหาการเชื่อมต่ออย่างง่ายระหว่างบัญชี นี่คือการค้นหาแบบ "2 Hop" เนื่องจากมีการเดินทาง 2 Hop จากโหนดเริ่มต้นเพื่อค้นหาโหนดที่เกี่ยวข้อง (เช่น ลูกค้า -> อีเมล -> ลูกค้า)
เราจะเริ่มด้วยการตรวจสอบบัญชีของ Nicole Wade เราต้องการค้นหาบัญชีที่เกี่ยวข้องกับเธอผ่านการข้าม 2 ครั้ง
เรียกใช้การค้นหาแบบ 2 Hop
เรียกใช้การค้นหาต่อไปนี้ใน Notebook
%%bigquery --graph
GRAPH fraud_demo.FraudDemo
MATCH
p=(a:Customer)
( -[e:OwnsEmail|OwnsPhone|LinkedToAddress WHERE e.last_updated_ts < '2025-07-30']- (n) ){2}
WHERE a.account_id IN ("d2f1f992-d116-41b3-955b-6c76a3352657")
-- Verify the final node in the hop array is a Customer
AND 'Customer' IN UNNEST(LABELS(n[OFFSET(1)]))
RETURN TO_JSON(p) AS paths

ทำความเข้าใจผลลัพธ์
การค้นหานี้
- เริ่มที่โหนด
Customerที่มีaccount_id"d2f1f992-d116-41b3-955b-6c76a3352657" (Nicole Wade) - ตามขอบ
OwnsEmail,OwnsPhoneหรือLinkedToAddressไปยังโหนดที่เชื่อมต่อ (Phone,EmailหรือAddress) - ติดตามขอบกลับจากโหนดที่เชื่อมต่อนั้นไปยังโหนด
Customerอื่นๆ - กรองขอบตามการประทับเวลา (
last_updated_ts) เพื่อดูสถานะของเครือข่ายในเวลาที่เฉพาะเจาะจง
คุณจะเห็นว่า Zachary Cordova และ Brenda Brown เชื่อมต่อกับ Nicole ผ่านที่อยู่เดียวกัน
6. วิเคราะห์เครือข่าย (4 Hop)
ในขั้นตอนนี้ คุณจะขยายคําค้นหาเพื่อค้นหาความสัมพันธ์ที่ซับซ้อนมากขึ้น เราจะมองหาการเชื่อมต่อแบบ4 ฮอป ซึ่งช่วยให้เราค้นหาบัญชีที่เชื่อมต่อผ่านเอนทิตีระดับกลางหลายรายการได้ (เช่น ลูกค้า ก. -> อีเมล -> ลูกค้า ข. -> โทรศัพท์ -> ลูกค้า ค.)
นอกจากนี้ เราจะสังเกตการเปลี่ยนแปลงของเครือข่ายนี้เมื่อเวลาผ่านไป
สถานะ "ก่อน"
ก่อนอื่น มาดูเครือข่าย ณ วันที่ 30 กรกฎาคม 2025
เรียกใช้การค้นหาต่อไปนี้
%%bigquery --graph
%%bigquery --graph
MATCH p= ANY SHORTEST (a:Customer)
( -[e:OwnsEmail|OwnsPhone|LinkedToAddress WHERE e.last_updated_ts < '2025-07-30']- (n) ){3, 5}(reachable_a:Customer)
WHERE a.account_id IN ("d2f1f992-d116-41b3-955b-6c76a3352657")
-- Ensure the final node in the dynamic chain is actually a Customer
AND 'Customer' IN UNNEST(LABELS(n[OFFSET(ARRAY_LENGTH(n) - 1)]))
GRAPH fraud_demo.FraudDemo
RETURN
TO_JSON(p) AS paths, -- Array of all traversed edges
ARRAY_LENGTH(e) AS hop_count

สถานะ "หลัง"
ตอนนี้มาดูกันว่าเครือข่ายจะเป็นอย่างไรในอีก 2 สัปดาห์ต่อมา เราจะเรียกใช้การค้นหาเดียวกันแต่ไม่มีข้อจำกัดด้านวันที่
เรียกใช้การค้นหาต่อไปนี้
%%bigquery --graph
GRAPH fraud_demo.FraudDemo
MATCH p= ANY SHORTEST (a:Customer)
( -[e:OwnsEmail|OwnsPhone|LinkedToAddress]- (n) ){3, 5}(reachable_a:Customer)
WHERE a.account_id IN ("d2f1f992-d116-41b3-955b-6c76a3352657")
-- Ensure the final node in the dynamic chain is actually a Customer
AND 'Customer' IN UNNEST(LABELS(n[OFFSET(ARRAY_LENGTH(n) - 1)]))
RETURN
TO_JSON(p) AS paths, -- Array of all traversed edges
ARRAY_LENGTH(e) AS hop_count

ทำความเข้าใจผลลัพธ์
การนำตัวกรองวันที่ออกหมายความว่าคุณกำลังค้นหาในชุดข้อมูลทั้งหมด คุณจะเห็นว่าเครือข่ายเติบโตขึ้นอย่างมาก ตอนนี้ Nicole Wade เป็นส่วนหนึ่งของกลุ่มที่ใหญ่ขึ้นมากและมีการเชื่อมต่อสูง การขยายเครือข่ายที่เชื่อมต่ออย่างรวดเร็วนี้เป็นตัวบ่งชี้ที่ชัดเจนว่าอาจมีกิจกรรมที่เป็นการฉ้อโกง เช่น กลุ่มฉ้อโกงที่แชร์ทรัพยากรเมื่อเวลาผ่านไป
7. สร้างรายงานการประพฤติมิชอบ
ในขั้นตอนนี้ คุณจะรวมการวิเคราะห์กราฟเข้ากับข้อมูลธุรกิจแบบเดิม (คำสั่งซื้อ) เพื่อสร้างรายงานการฉ้อโกงที่ครอบคลุม คุณจะระบุบัญชีที่มีความเสี่ยงและคำสั่งซื้อที่อาจเป็นการฉ้อโกงได้
คำค้นหานี้มีความซับซ้อนมากขึ้น โดยใช้ GRAPH_TABLE เพื่อเรียกใช้การค้นหากราฟภายใน SQL มาตรฐาน และคํานวณการเปลี่ยนแปลงขนาดเครือข่าย (diff) ระหว่างสถานะ "ก่อน" และ "หลัง" ที่เราสังเกตเห็นในขั้นตอนก่อนหน้า
เรียกใช้การค้นหารายงานการประพฤติมิชอบ
เรียกใช้การค้นหาต่อไปนี้ใน Notebook
%%bigquery --graph
WITH num_orders AS (
SELECT account_id, COUNT(1) AS num_order
FROM fraud_demo.orders
WHERE order_time > '2025-07-30'
GROUP BY account_id
),
orders AS (
SELECT account_id, order_id, fraud, order_total
FROM fraud_demo.orders
WHERE order_time > '2025-07-30'
),
-- Use Quantified Path Patterns to find connections up to 4 hops away
latest_connect AS (
SELECT
account_id,
ARRAY_LENGTH(ARRAY_AGG(DISTINCT connected_id)) AS size
FROM GRAPH_TABLE(
fraud_demo.FraudDemo
MATCH (a:Customer)-[:OwnsEmail|OwnsPhone|LinkedToAddress]-{4}(connected:Customer)
RETURN a.account_id AS account_id, connected.account_id AS connected_id
)
GROUP BY account_id
),
prev_connect AS (
SELECT
account_id,
ARRAY_LENGTH(ARRAY_AGG(DISTINCT connected_id)) AS size
FROM GRAPH_TABLE(
fraud_demo.FraudDemo
-- Apply the timestamp filter to EVERY edge in the 4-hop chain
MATCH (a:Customer)
(-[e:OwnsEmail|OwnsPhone|LinkedToAddress WHERE e.last_updated_ts < '2025-07-30']-(n)){4}
WHERE 'Customer' IN UNNEST(LABELS(n[OFFSET(3)]))
RETURN a.account_id AS account_id, n[OFFSET(3)].account_id AS connected_id
)
GROUP BY account_id
),
edge_changes AS (
SELECT account_id, MAX(last_updated_ts) AS max_last_updated_ts
FROM fraud_demo.customer_addresses
GROUP BY account_id
)
SELECT
la.account_id,
o.order_id,
la.size AS latest_size,
COALESCE(pa.size, 0) AS previous_size,
la.size - COALESCE(pa.size, 0) AS diff,
nos.num_order,
o.fraud AS reported_as_fraud,
o.order_total,
CASE
WHEN (la.size - COALESCE(pa.size, 0)) > 10 AND nos.num_order IS NULL THEN "CUSTOMER AT RISK"
WHEN (la.size - COALESCE(pa.size, 0)) > 10 AND nos.num_order IS NOT NULL AND o.fraud THEN "CONFIRMED FRAUD ORDER"
WHEN (la.size - COALESCE(pa.size, 0)) > 10 AND nos.num_order IS NOT NULL AND NOT o.fraud THEN "POTENTIAL FRAUD ORDER"
ELSE ""
END AS notes
FROM latest_connect la
LEFT JOIN prev_connect pa ON la.account_id = pa.account_id
LEFT JOIN num_orders nos ON la.account_id = nos.account_id
LEFT JOIN orders o ON la.account_id = o.account_id
INNER JOIN edge_changes ec ON la.account_id = ec.account_id
WHERE nos.num_order > 1 OR (la.size - COALESCE(pa.size, 0)) > 10
ORDER BY diff DESC
ทำความเข้าใจผลลัพธ์
รายงานนี้แสดงข้อมูลต่อไปนี้
account_id: รหัสของบัญชีที่กำลังวิเคราะห์order_id: รหัสคำสั่งซื้อล่าสุดlatest_size: ขนาดของเครือข่ายที่เชื่อมต่อในปัจจุบันprevious_size: ขนาดของเครือข่ายเมื่อ 2 สัปดาห์ที่แล้วdiff: การเติบโตของขนาดเครือข่ายnum_order: จำนวนคำสั่งซื้อล่าสุดreported_as_fraud: มีการแจ้งว่าคำสั่งซื้อเป็นการฉ้อโกงหรือไม่order_total: ยอดรวมของคำสั่งซื้อnotes: สถานะความเสี่ยงที่คำนวณแล้วโดยอิงตามการเติบโตของเครือข่ายและประวัติการสั่งซื้อ
คุณจะเห็นบัญชีที่มีค่า diff สูงและยอดคำสั่งซื้อสูง ซึ่งเป็นบัญชีที่ควรตรวจสอบเพิ่มเติม หมายเหตุ "ลูกค้าที่มีความเสี่ยง" และ "คำสั่งซื้อที่อาจเป็นการฉ้อโกง" ช่วยจัดลำดับความสำคัญของบัญชีเหล่านี้

8. การตรวจจับในวงกว้าง
ในขั้นตอนการวิเคราะห์สุดท้ายนี้ คุณจะเห็นภาพเครือข่ายในขนาดที่ใหญ่ขึ้น แทนที่จะเริ่มด้วยบัญชีเดียว คุณจะค้นหาการเชื่อมต่อระหว่างชุดบัญชีที่น่าสงสัย
ซึ่งจะช่วยให้คุณทราบว่าการสืบสวนอิสระหลายครั้งเป็นส่วนหนึ่งของวงแหวนการประพฤติมิชอบที่ใหญ่ขึ้นเดียวกันหรือไม่
เรียกใช้การค้นหาที่ปรับขนาด
เรียกใช้การค้นหาต่อไปนี้ใน Notebook
%%bigquery --graph
GRAPH fraud_demo.FraudDemo
MATCH
p= ANY SHORTEST (a:Customer)
( -[e:OwnsEmail|OwnsPhone|LinkedToAddress]- (n) ){3, 5}
(reachable_a:Customer)
-- these IDs are from the previous results
WHERE a.account_id in ( "845f2b14-cd10-4750-9f28-fe542c4a731b"
, "3ff59684-fbf9-40d7-8c41-285ade5002e6"
, "8887c17b-e6fb-4b3b-8c62-cb721aafd028"
, "03e777e5-6fb4-445d-b48c-cf42b7620874"
, "81629832-eb1d-4a0e-86da-81a198604898"
, "845f2b14-cd10-4750-9f28-fe542c4a731b",
"89e9a8fe-ffc4-44eb-8693-a711a3534849"
)
LIMIT 400
RETURN TO_JSON(p) as paths
ทำความเข้าใจผลลัพธ์
การค้นหานี้จะแสดงกราฟที่ซับซ้อนซึ่งแสดงให้เห็นว่าบัญชีที่น่าสงสัยที่ระบุมีการทับซ้อนกันและแชร์ทรัพยากรอย่างไร ตอนนี้คุณกำลังดูการตรวจหาการฉ้อโกงในวงกว้าง ซึ่งเป็นการระบุคลัสเตอร์ของกิจกรรมที่อาจต้องมีการตอบสนองที่ประสานกัน

9. ล้าง
คุณควรลบชุดข้อมูลและกราฟพร็อพเพอร์ตี้เพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโค้ดแล็บนี้
เรียกใช้คำสั่ง SQL ต่อไปนี้เพื่อล้างข้อมูลสภาพแวดล้อม
DROP PROPERTY GRAPH IF EXISTS fraud_demo.FraudDemo;
DROP SCHEMA IF EXISTS fraud_demo CASCADE;
10. ขอแสดงความยินดี
ยินดีด้วย คุณสร้างโซลูชันการตรวจหาการประพฤติมิชอบโดยใช้กราฟ BigQuery ได้สำเร็จแล้ว
คุณได้เรียนรู้วิธีการต่อไปนี้แล้ว
- โหลดข้อมูลจาก Cloud Storage ลงใน BigQuery
- กำหนดกราฟพร็อพเพอร์ตี้โดยใช้ DDL
- ค้นหากราฟโดยใช้ GQL เพื่อค้นหาความสัมพันธ์ที่ซับซ้อนและไม่ซับซ้อน
- รวมการวิเคราะห์กราฟเข้ากับข้อมูลธุรกิจเพื่อระบุความเสี่ยง
- แสดงภาพเครือข่ายในวงกว้าง
แหล่งข้อมูลเพิ่มเติม