更新数据

本文将介绍如何通过API新增和删除表数据

1、添加表

用户可通过添加表并配置oss、MaxCompute数据源将全量数据导入到表中:

image.png

添加表的具体步骤可参考:

添加表的流程配置完成后,等待表的状态为“使用中”即可通过API插入数据:

image.png

2、配置公网白名单

如果用户的访问环境是同个虚拟交换的VPC环境,可以忽略此步骤。

本地环境或公网环境请参考公网白名单配置

3、推送表数据

以Python为例:

添加依赖

pip install alibabacloud-ha3engine-vector

数据推送demo:

# -*- coding: utf-8 -*-

from alibabacloud_ha3engine_vector import models, client
from Tea.exceptions import TeaException, RetryError

Config = models.Config(
    endpoint="<API域名>",  # // API域名,可在实例详情页>API入口 查看(需要去掉http://前缀)
    instance_id="<实例id>",  # // 实例id,可在实例详情页左上角查看,例:ha-cn-i7*****605
    protocol="http",
    access_user_name="<用户名>",  # // 用户名,可在实例详情页>API入口 查看
    access_pass_word="<用户名密码>"  # // 用户名密码,可在实例详情页>API入口 修改

)

# 初始化 引擎客户端
ha3EngineClient = client.Client(Config)

def push():
    # 文档推送的表名称,是实例id与表名的拼接,中间用下划线连接
    tableName = "<instance_id>_<table_name>";

    try:
        # 添加文档
        # 添加一篇文档,如果文档已经存在会先删除然后再添加。
        # =====================================================
        # 更新文档内容信息
        add2DocumentFields = {
            "id": 1,                          # 主键id,INT单值类型
            "cate_id": "123",                    # STRING单值类型
            "vector": "a\x1Db\x1Dc\x1Dd"     # STRING多值类型
        }
        
        # 将文档内容添入 add2Document结构
        add2Document = {
            "fields": add2DocumentFields,
            "cmd": "add"                      # 新增对应的文档命令: add
        }

        optionsHeaders = {}
        # 文档推送外层结构, 可添加对文档操作的结构体.结构内支持 一个或多个文档操作内容.
        documentArrayList = []
        documentArrayList.append(add2Document)
        pushDocumentsRequest = models.PushDocumentsRequest(optionsHeaders, documentArrayList)

        # 文档推送的文档主键字段.
    	pkField = "id"
        # 使用默认 运行时参数进行请求
        response = ha3EngineClient.push_documents(tableName, pkField, pushDocumentsRequest)
        print(response.body)
        print(response.body)
    except TeaException as e:
        print(f"send request with TeaException : {e}")
    except RetryError as e:
        print(f"send request with Connection Exception  : {e}")

if __name__ == "__main__":
    push()

注意

  • Python SDK中endpoint里需要去掉http://

  • dataSourceName数据源名称为实例id_表名,如下图所示,dataSourceName=ha-cn-zpr3dgzxg04_test_vector_api

image.png

response中返回{"status": "OK", "code": 200} 说明本次请求成功。

4、验证数据

通过主键或向量在查询测试中进行验证:

image.png

查询语法可参考主键查询向量查询

其他SDK参考

其他语言SDK可参考查询数据