You need to enable JavaScript to run this app.
导航
最佳实践:洞察数据从BMQ写入ES
最近更新时间:2024.09.14 15:41:20首次发布时间:2024.08.02 17:59:37

本文档介绍如何将洞察数据从BMQ写入ES。

概述:

内容洞察数据流配置,支持将客户BMQ中的内容数据,自动写入指定的ES中,客户侧可按照如下指引,完成基础配置,实现自动化写入。

前置准备:


说明

本文档适用于通过内容洞察PaaS数据流配置,自动化实现数据存储到ES的客户。

一、创建并完善ES配置

创建ES实例


请参考文档:创建实例--云搜索服务-火山引擎

定义mapping template并绑定index

注意

PUT _template/{template_name} // 自定义template_name,如insight_post_template
{
  "index_patterns": [ // 自定义index模式
    "insight_post", 
    "insight_post-*"
  ],
  "settings": {
    "index": {
      "search": {
        "slowlog": {
          "level": "info",
          "threshold": {
            "fetch": {
              "warn": "200ms",
              "trace": "50ms",
              "debug": "80ms",
              "info": "100ms"
            },
            "query": {
              "warn": "500ms",
              "trace": "50ms",
              "debug": "100ms",
              "info": "200ms"
            }
          }
        }
      },
      "refresh_interval": "10s",
      "indexing": {
        "slowlog": {
          "level": "info",
          "threshold": {
            "index": {
              "warn": "200ms",
              "trace": "20ms",
              "debug": "50ms",
              "info": "100ms"
            }
          },
          "source": "1000"
        }
      },
      "number_of_shards": "1",
      "number_of_replicas": "1"
    }
  },
  "mappings": {
    "dynamic" : "false",
    "properties": {
      "post_id": {
        "type": "keyword"
      },
      "origin_id": {
        "type": "keyword"
      },
      "publish_time": {
        "type" : "date",
        "format" : "yyyy-MM-dd HH:mm:ss"
      },
      "push_ready_time": {
        "type" : "date",
        "format" : "yyyy-MM-dd HH:mm:ss"
      },
      "main_domain": {
        "type": "keyword"
      },
      "domain":{
        "type": "keyword"
      },
      "url":{
        "type": "keyword"
      },
      "title": {
        "type" : "text",
        "analyzer": "standard" 
      },
      "poi":{
        "properties": {
          "poi_name":{
            "type" : "text",
            "analyzer": "standard"
          },
          "poi_location":{
            "properties": {
              "city" : {
                  "type" : "keyword"
                },
                "city_code" : {
                  "type" : "keyword"
                },
                "city_geo_id" : {
                  "type" : "keyword"
                },
                "district" : {
                  "type" : "keyword"
                },
                "district_code" : {
                  "type" : "keyword"
                },
                "district_geo_id" : {
                  "type" : "keyword"
                },
                "province" : {
                  "type" : "keyword"
                },
                "province_code" : {
                  "type" : "keyword"
                },
                "province_geo_id" : {
                  "type" : "keyword"
                },
                "region" : {
                  "type" : "keyword"
                },
                "region_code" : {
                  "type" : "keyword"
                },
                "region_geo_id" : {
                  "type" : "keyword"
                },
                "town" : {
                  "type" : "keyword"
                },
                "town_code" : {
                  "type" : "keyword"
                },
                "town_geo_id" : {
                  "type" : "keyword"
                }
            }
          }
        }
      },
      "status": {
        "type" : "byte"
      },
      "post_type": {
        "type": "integer"
      },
      "create_status": {
        "type": "boolean"
      },
      "based_location":{
        "properties" : {
            "mentioned_locations" : {
              "properties" : {
                "city" : {
                  "type" : "keyword"
                },
                "city_code" : {
                  "type" : "keyword"
                },
                "city_geo_id" : {
                  "type" : "keyword"
                },
                "district" : {
                  "type" : "keyword"
                },
                "district_code" : {
                  "type" : "keyword"
                },
                "district_geo_id" : {
                  "type" : "keyword"
                },
                "province" : {
                  "type" : "keyword"
                },
                "province_code" : {
                  "type" : "keyword"
                },
                "province_geo_id" : {
                  "type" : "keyword"
                },
                "region" : {
                  "type" : "keyword"
                },
                "region_code" : {
                  "type" : "keyword"
                },
                "region_geo_id" : {
                  "type" : "keyword"
                },
                "town" : {
                  "type" : "keyword"
                },
                "town_code" : {
                  "type" : "keyword"
                },
                "town_geo_id" : {
                  "type" : "keyword"
                }
              }
            },
            "public_location" : {
              "properties" : {
                "city" : {
                  "type" : "keyword"
                },
                "city_code" : {
                  "type" : "keyword"
                },
                "city_geo_id" : {
                  "type" : "keyword"
                },
                "district" : {
                  "type" : "keyword"
                },
                "district_code" : {
                  "type" : "keyword"
                },
                "district_geo_id" : {
                  "type" : "keyword"
                },
                "province" : {
                  "type" : "keyword"
                },
                "province_code" : {
                  "type" : "keyword"
                },
                "province_geo_id" : {
                  "type" : "keyword"
                },
                "region" : {
                  "type" : "keyword"
                },
                "region_code" : {
                  "type" : "keyword"
                },
                "region_geo_id" : {
                  "type" : "keyword"
                },
                "town" : {
                  "type" : "keyword"
                },
                "town_code" : {
                  "type" : "keyword"
                },
                "town_geo_id" : {
                  "type" : "keyword"
                }
              }
            }
          }
      },
      "matched_task_ids":{
        "type" : "keyword"
      }
    }
  }
}

二、洞察控制台添加ES并创建数据流

云资源管理:添加ES资源

控制台示意说明

进入洞察云资源管理tab,点击ES配置

进入洞察控制台,点击云资源管理tab。(控制台入口:账号登录-火山引擎

选择es配置,点击右上角【添加云资源】。

进入es配置页,会展示当前账号下的es资源,选择资源后即可确认提交。

若无es实例可点击创建实例,跳转至es页面进行开通创建。


数据流管理:创建发布数据流


第一步:创建数据流,配置对应vpc与flink资源

控制台示意说明

创建数据流

点击数据流管理tab,点击右上角创建数据流按钮,

完善vpcflink资源信息

填写数据流名称与描述,选择数据流运行对应的VPC,完善flink资源配置。

注意:

  • 数据流所配置的所有云组件,均需在同一个VPC下,才可确保数据流正常运行。

  • 数据流跨vpc运行功能建设中,如有需求可联系洞察产研。

第二步:完善节点信息,提交保存

控制台示意说明

编辑source节点,选择洞察数据

点击source节点,按照提示完成编辑。
其中数据源选择洞察数据。

编辑sink节点,选择sink类型为****ES

选择ES作为sink类型,按照提示填写相关内容。
注意:

  • 请提前创建好对应的mapping,并明确index与唯一ID

  • 建议index:insight_post

  • 建议唯一id值:post_id

  • 请填写es资源对应的用户名与密码,洞察数据才可正常写入。es用户名及密码请参考下图

点击保存,节点标识变更

节点编辑完成后,点击保存。
若填写内容校验无误,节点标识变更为对号。
若节点信息填写有误,可查看节点提示信息。

第三步:校验数据流,校验通过后发布上线

控制台示意说明

点击发布数据流

节点编辑完成,且节点标识提示正确无误的情况下,可点击按钮【发布草稿到线上】发布数据流。

选择TOS桶并上传样例数据


发布数据流前需进行发布校验,上传样例数据,以确保数据可正常按照设置写入下游。

选择TOS桶以存储相关文件,并选择/上传将要进行校验的样例数据。

注意:

  • 请上传json格式的样例数据

  • 上传的新内容将会保存为文件并上传至已选择桶的 insight_verify/ 路径下,如没有该路径则会自动创建

洞察数据校验样例可参考:

insight_sample.json
11.35KB

点击启动校验

样例数据上传完毕后,点击按钮【启动校验】
校验预计需要3-5分钟请耐心等待

校验通过,发布数据流


校验通过后,可查看数据预览,确认无误后可发布数据流。

发布预计需要3-5分钟,请耐心等待。
发布成功后,前端状态变更为发布成功。


三、数据流发布上线,访问实例

数据流发布上线后,可登录kibana以访问实例,检索数据
通过 Kibana 访问实例--云搜索服务-火山引擎