Nhảy tới nội dung

Truy vấn siêu dữ liệu sử dụng giao diện GraphiQL

VinGen Data Portal hỗ trợ truy vấn dữ liệu sử dụng giao diện GraphQL. Người dùng có thể tìm kiếm thêm thông tin chi tiết về GraphQL trên trang chính thức.

GraphQL cho phép người dùng chỉ truy vấn dữ liệu họ cần, điều này giúp cho người dùng dễ dàng đọc dữ liệu.

Người dùng có thể tham khảo guppy để có thêm thông về những loại truy vấn mà VinGen Data Portal hiện đang hỗ trợ.

Người dùng có thể chuyễn đổi giữa Graph Model và Flat Model, mỗi loại sử dụng các dữ liệu khác nhau (Postgres và Elastisearch). Để xem những nút có thể truy vấn và đặc tính của chúng, nhấp vào phím "Docs".

alt text

Để mô tả cách truy vấn siêu dữ liệu sử dụng giao diện GraphiQL hoạt động, đánh "mẫu" làm tên của nút trong ô tìm kiếm "Search Schema" trong Graph Model, sau đó nhấp chuột vào "Query.sample" để hiện thị tất cả đặc tính có thể truy vấn của nút.

alt text

Ví dụ, truy vấn như sau:

{
subject {
subject_id
submitter_id
}
}

sẽ cho ra kết quả như sau:

alt text

Hoặc nếu người dùng muốn truy vấn "đếm" dữ liệu với thông tin aboutkey và termsFields, lệnh truy vấn như sau:

query ($filter: JSON, $nestedAggFields: JSON) {
_aggregation {
subject(filter: $filter, filterSelf: false, nestedAggFields: $nestedAggFields, accessibility: all) {
original_area {
histogram {
key
count
missingFields {
field
count
}
termsFields {
field
terms {
key
count
}
}
}
}
}
}
}

Với các biến truy cập là $filter and $nestedAggFields

{"filter":{"AND":[]},"nestedAggFields":{"termsFields":["gender"]}}

Kết quả sẽ hiển thị tương ứng như sau.

{
"data": {
"_aggregation": {
"subject": {
"original_area": {
"histogram": [
{
"key": "Ha Noi",
"count": 110,
"missingFields": null,
"termsFields": [
{
"field": "gender",
"terms": [
{
"key": "female",
"count": 73
},
{
"key": "male",
"count": 37
}
]
}
]
},
{
"key": "Binh Thuan",
"count": 4,
"missingFields": null,
"termsFields": [
{
"field": "gender",
"terms": [
{
"key": "male",
"count": 3
},
{
"key": "female",
"count": 1
}
]
}
]
},
{
"key": "Bac Kan",
"count": 1,
"missingFields": null,
"termsFields": [
{
"field": "gender",
"terms": [
{
"key": "male",
"count": 1
}
]
}
]
}
]
}
}
}
}
}