全部产品
云市场

黑名单监控告警

更新时间:2019-09-19 10:44:27

本文介绍如何通过向量分析实现黑名单监控告警功能。

前提条件

  1. 开通AnalyticDB服务

    • 只有ECU类型为H8的集群支持向量功能,其他类型ECU不支持向量功能。

    • 只支持在普通表(实时表)中定义向量列。

  2. 创建普通表之前,需要先创建表组,否则系统执行建表语句时将提示出错。

    相同表组下普通表的HASH分区数必须相同。

操作步骤

  1. 连接分析型数据库MySQL版创建黑名单表。

    通过以下SQL创建黑名单表BLACK_LIST

    1. CREATE TABLE black_list (
    2. id bigint,
    3. name varchar,
    4. image_url varchar,
    5. gender varchar,
    6. feature float[1024] COLPROPERTIES (DistanceMeasure='SquaredEuclidean',ExtractFrom='FACE_FEATURE_EXTRACT_V1(image_url)'),
    7. ANN INDEX feature_index (feature) Algorithm=Native_FLAT,
    8. PRIMARY KEY (id)
    9. )
    10. PARTITION BY HASH KEY (id) PARTITION NUM 2
    11. CLUSTERED BY (id)
    12. TABLEGROUP ads

    feature float[1024] COLPROPERTIES (DistanceMeasure='SquaredEuclidean',ExtractFrom='FACE_FEATURE_EXTRACT_V1(image_url)')定义向量列,用于获取用户自定义函数和传入图片的URL,详细的参数解释请参见CREATE TABLE

  2. 插入数据

    分析型数据库MySQL版提供两种插入数据的方法。

    • 调用用户自定义函数FACE_FEATURE_EXTRACT_V1()从图片中抽取人脸特征向量,然后将结果写入分析型数据库MySQL版。

      1. INSERT INTO black_list (id, name, image_url, gender, feature) VALUES (10, 'Zhang San', 'https://xxx/img.jpg', 'male', FACE_FEATURE_EXTRACT_V1 ('https://xxx/face_img.jpg'));
    • 根据输入图片的URL自动获取特征向量,然后插入数据。

      使用这种方法插入数据时,需要在建表时指定feature列及其特征,用于获取用户自定义函数和传入图片的URL,类似上述建表时定义的ExtractFrom='FACE_FEATURE_EXTRACT_V1(image_url)'

      1. INSERT INTO black_list (id, name, image_url, gender) VALUES (10, 'Zhang San', 'https://xxx/face_img.jpg', 'male');

      关于插入数据请参见插入数据

  3. 查询数据

    分析型数据库MySQL版支持SELECT查询中携带用户自定义函数传入图片URL。例如,检索人脸图片链接为https://xxx/face_img.jpg且性别为男性的记录。

    1. SELECT id, name
    2. FROM ann (
    3. SELECT * FROM black_list WHERE gender='male',
    4. feature,
    5. FACE_FEATURE_EXTRACT_V1('https://xxx/face_img.jpg'),
    6. 1,
    7. 'DISTANCE_THRESHOLD=0.6'
    8. )

从向量表中检索图片数据时,需要使用OSS图片的URL,有以下两种方法获取OSS图片的URL。

  • 使用OSS SDK生成包含签名的URL,详情请参见如何在URL中包含签名

    包含签名的URL示例:http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936**9l&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv4%3D