You need to enable JavaScript to run this app.
文档中心
日志服务

日志服务

复制全文
下载 pdf
检索分析
检索分析 JSON 日志
复制全文
下载 pdf
检索分析 JSON 日志
本文以电商平台的订单系统日志为例,介绍 JSON 格式日志的典型检索分析场景及示例。​
背景信息​
某电商公司的订单系统每天需要处理成千上万笔的交易请求,并生成海量的 JSON 格式日志。这些 JSON 日志详细记录了每个订单的详细信息,例如用户信息(用户 ID、用户地址、用户昵称等)、购买信息(商品 ID、商品名称、商品价格、商品数量)、订单信息(订单 ID、订单总价、订单状态、支付方式、快递时间等)等。​
面对电商公司订单系统产生的复杂 JSON 日志,日志服务不仅是一个存储仓库,更是一个强大的分析平台。日志服务提供 JSON 类型的索引配置,极大增强了对 JSON 日志的结构化管理效率,实现复杂结构中的字段内容也能被精准索引。日志服务还内置了丰富的 JSON 函数,支持高效的日志解析和内容提取。​
前提条件​
  • 已创建日志项目和日志主题。具体操作,请参考创建资源。​
  • 已根据日志字段创建索引。具体操作,请参考配置索引。​
日志样例 ​
下述罗列了订单系统 JSON 日志样例。 ​
​
{​
"timestamp": "2024-05-14T12:30:45Z",​
"order_id": "ODR123456789",​
"customer": {​
"customer_id": "CUST987654321",​
"name": "John Doe",​
"email": "john.doe@example.com",​
"address": {​
"street": "123 Main St",​
"city": "Anytown",​
"state": "NY",​
"zip": "12345",​
"country": "USA"​
}​
},​
"items": [​
{​
"product_id": "PROD001",​
"name": "Widget",​
"quantity": 2,​
"price": 9.99,​
"total_price": 19.98​
},​
{​
"product_id": "PROD002",​
"name": "Gadget",​
"quantity": 1,​
"price": 14.99,​
"total_price": 14.99​
}​
],​
"subtotal": 34.97,​
"tax": 2,​
"total": 36.97,​
"status": "shipped",​
"shipping_method": "express",​
"payment_method": "credit_card",​
"shipping_address": {​
"street": "456 Oak St",​
"city": "Othertown",​
"state": "CA",​
"zip": "54321",​
"country": "USA"​
},​
"billing_address": {​
"street": "456 Oak St",​
"city": "Othertown",​
"state": "CA",​
"zip": "54321",​
"country": "USA"​
},​
"shipping_cost": 10,​
"payment_status": "paid",​
"payment_amount": 36.97,​
"shipping_status": "delivered",​
"shipping_date": "2024-05-15",​
"notes": "此订单客户要求24小时内尽快发货"​
}​
​
索引样例​
本案例基于上述日志样例创建了如下索引配置。索引配置的具体操作及注意事项,请参考配置索引。​
其中,customer 字段是 JSON 对象,日志服务支持对 customer 字段内的子字段设置索引,并支持字段检索分析。关于 JSON 数据类型索引的详细说明及注意事项请参考json 类型。​
​​​
典型检索分析场景​
通过 JSON 日志介绍 JSON 字段的检索分析示例和 JSON 函数的使用示例。​
场景 1:根据用户 ID 精准查询相关订单​
  • 场景:查询 CUST987654321 用户所有订单的详细信息。​
  • 检索语句 ​
  • ​
    customer.customer_id:CUST987654321​
    ​
  • 检索结果 ​
  • ​​​
场景 2:根据用户 ID 模糊查询相关订单​
  • 场景:查询用户 ID 以 CUST98 开头的所有订单的详细信息。 ​
  • 检索语句 ​
  • ​
    customer.customer_id:CUST98*​
    ​
  • 使用模糊查询时,需在关键词中添加通配符星号(*)或者问号(?)。详细说明请参考日志检索。​
  • 检索结果 ​
  • ​​​
场景 3:根据某个关键词查询相关订单​
  • 场景:查询用户地址为 Guangzhou 的所有请求信息。 ​
  • 检索分析语句 ​
  • ​
    customer.address: Guangzhou​
    ​
  • customer.address 字段已配置键值索引并开启分词符功能,因此日志服务会基于分词符将字段值拆分为多个关键词,并支持上述键值查询。​
  • 检索分析结果 ​
  • ​​​
场景 4:根据多个关键字查询相关订单​
  • 场景:查询用户地址包含 123 Main St 街道的所有请求信息。 ​
  • 检索分析语句​
  • ​
    customer.address:"123 Main St"​
    ​
  • 其中,123 Main St为三个关键字包含空格,因此通过 123 Main St 进行检索时需使用双引号("")包裹。​
  • 检索分析结果 ​
  • ​​​
场景 5:使用 JSON 函数提取 JSON 字段值​
  • 场景:查看某用户在指定订单中购买的第一件商品。 ​
  • 检索分析语句​
说明​
在 SQL 语句中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。其中,JSON 字段(例如 customer.customer_id),必须使用双引号("")包裹。​
  • ​
    *|SELECT JSON_EXTRACT_SCALAR(JSON_ARRAY_GET(JSON_PARSE(items), 0), '$.product_id') AS "商品ID" WHERE "customer.customer_id" = 'CUST987654321' AND order_id = 'ODR123456792'​
    ​
  • 其中:​
  • JSON_PARSE 函数用于将 JSON 格式的字符串(items 字段的值)转化成 JSON 类型,详细说明请参考JSON_PARSE 函数。​
  • JSON_ARRAY_GET 函数用于提取 items 字段值中的第一个元素(例如 "product_id":"PROD001"),详细说明请参考JSON_ARRAY_GET 函数。​
  • JSON_EXTRACT_SCALAR 函数用于从上述提取到的元素(例如"product_id":"PROD001")中提取 product_id 字段的值,详细说明请参考JSON_EXTRACT_SCALAR 函数。​
  • 检索分析结果 ​
  • ​​​
场景 6:分组统计订单数量​
  • 场景:统计最近一个月各个用户的订单数量。 ​
  • 检索分析语句 ​
说明​
在 SQL 语句中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。其中,JSON 字段(例如 customer.customer_id),必须使用双引号("")包裹。​
  • ​
    *| SELECT "customer.customer_id", COUNT(*) AS "订单数量" GROUP BY "customer.customer_id"​
    ​
  • 检索分析结果 ​
  • ​​​
场景 7:分组统计支付费用​
  • 场景:统计支付费用 TOP 10 的城市。 ​
  • 检索分析语句 ​
说明​
在 SQL 语句中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。其中,JSON 字段(例如 customer.customer_id),必须使用双引号("")包裹。​
  • ​
    *| SELECT JSON_EXTRACT_SCALAR("customer.address", '$.city') AS "城市", SUM(payment_amount) AS "支付费用" GROUP BY "城市" ORDER BY "支付费用" DESC LIMIT 10​
    ​
  • 其中:​
  • JSON_EXTRACT_SCALAR 函数用于从 JSON 形式的字符串中提取到 city 字段的值,详细说明请参考JSON_EXTRACT_SCALAR 函数。​
  • GROUP BY "城市" 子句用于按照城市分组来统计各个城市的支付费用。​
  • 检索分析结果 ​
  • ​​​
相关文档 ​
​
最近更新时间:2026.09.07 18:11:38
这个页面对您有帮助吗?
有用
有用
无用
无用