黑名单监控告警
本文介绍如何通过向量分析实现黑名单监控告警功能。
前提条件
-
只有ECU类型为H8的集群支持向量功能,其他类型ECU不支持向量功能。
只支持在普通表(实时表)中定义向量列。
创建普通表之前,需要先创建表组,否则系统执行建表语句时将提示出错。
相同表组下普通表的HASH分区数必须相同。
操作步骤
连接分析型数据库MySQL版创建黑名单表。
通过以下SQL创建黑名单表
BLACK_LIST
。CREATE TABLE black_list (
id bigint,
name varchar,
image_url varchar,
gender varchar,
feature float[1024] COLPROPERTIES (DistanceMeasure='SquaredEuclidean',ExtractFrom='FACE_FEATURE_EXTRACT_V1(image_url)'),
ANN INDEX feature_index (feature) Algorithm=Native_FLAT,
PRIMARY KEY (id)
)
PARTITION BY HASH KEY (id) PARTITION NUM 2
CLUSTERED BY (id)
TABLEGROUP ads
feature float[1024] COLPROPERTIES (DistanceMeasure='SquaredEuclidean',ExtractFrom='FACE_FEATURE_EXTRACT_V1(image_url)')
定义向量列,用于获取用户自定义函数和传入图片的URL,详细的参数解释请参见CREATE TABLE。插入数据
分析型数据库MySQL版提供两种插入数据的方法。
调用用户自定义函数
FACE_FEATURE_EXTRACT_V1()
从图片中抽取人脸特征向量,然后将结果写入分析型数据库MySQL版。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)'
。INSERT INTO black_list (id, name, image_url, gender) VALUES (10, 'Zhang San', 'https://xxx/face_img.jpg', 'male');
关于插入数据请参见插入数据。
查询数据
分析型数据库MySQL版支持SELECT查询中携带用户自定义函数传入图片URL。例如,检索人脸图片链接为
https://xxx/face_img.jpg
且性别为男性的记录。SELECT id, name
FROM ann (
SELECT * FROM black_list WHERE gender='male',
feature,
FACE_FEATURE_EXTRACT_V1('https://xxx/face_img.jpg'),
1,
'DISTANCE_THRESHOLD=0.6'
)
从向量表中检索图片数据时,需要使用OSS图片的URL,有以下两种方法获取OSS图片的URL。
直接将图片上传到OSS,获取访问URL。
使用该方法时,需要提前将OSS Bucket授权给
vdb_support
账户,如何授权请参见使用Bucket Policy授权其他用户访问OSS资源。
使用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