机器数据分析平台

  • 机器数据分析平台 > SDK 下载 > 服务端SDK >pdr-python-sdk > 数据存储开发流程

    数据存储开发流程

    最近更新时间: 2020-12-22 17:28:31

    创建client

    创建client的代码示例如下:

    from pdr_python_sdk.storage import *
    
    c = connect()
    

    指定scheme,host,port,例如使用http协议,host为127.0.0.1,端口号为11001,如下:

    from pdr_python_sdk.storage import *
    
    c = connect(scheme="http",host="127.0.0.1",port="11001")
    

    对数据表进行操作

    • 获取操作数据表的对象
      如果app名称为 app1,则
    storageTable = c.storage("app1")
    
    • 创建数据表
      创建数据表时,会内置一个id自增列。
      需要指定表名称,表的shcema。例如这里创建的表名称为 table1,schema为 des TEXT
    storageTable.create(data='{"name":"tabel1", "schema":"title TEXT, des TEXT"}')
    
    • 获取数据表
      获取所有的数据表
    storageTable.get_tables()
    

    返回结果示例

    {
    	'total': 1, 
    	'collections': [
    		{'app': 'app1', 'scope': 'GLOBAL', 'app_table': 'tabel1', 'table_schema': 'title TEXT, des TEXT'}
    	]
    }
    
    • 删除数据表
      删除指定表名称的数据表。例如这里的表名称为 table1
    storageTable.delete_table("table1")
    

    返回结果示例

    {}
    

    对数据进行操作

    • 获取操作数据的对象
      操作数据表 table1 的数据,则获取方式如下:
    storageData = storageTable.data("table1")
    
    • 插入数据
    storageData.insert({"fields": "title,des", "values": "\"title1\",\"sdk_test1\""})
    

    返回结果示例:

    {}
    
    • 获取数据
      获取所有数据:
    storageData.query()
    

    返回结果示例:

    {
    	'total': 1, 
    	'data': [
    		{'id': 1, 'title': 'title1', 'des': 'sdk_test1'}
    	]
    }
    

    获取指定页面指定条数数据。例如获取第一页,每页2行数据。

    storageData.query(pageNo=1, pageSize=2)
    

    返回结果示例:

    {
    	'total': 1, 
    	'data': [
    		{'id': 1, 'title': 'title1', 'des': 'sdk_test1'}
    	]
    }
    

    获取指定query语句的数据。例如获取des列为sdk_test1的数据

    storageData.query(query="des=\"sdk_test1\"")
    

    返回结果示例:

    {
    	'total': 1, 
    	'data': [
    		{'id': 1, 'title': 'title1', 'des': 'sdk_test1'}
    	]
    }
    
    • 根据id获取数据
    storageData.query_by_id(1)
    

    返回结果示例:

    {'id': 1, 'des': 'sdk_test1'}
    
    • 根据id更新数据
    storageData.update(1, '{"value": "des=\\"sdk_new\\""}')
    

    返回结果示例:

    {}
    
    • 根据query语句更新数据
    storageData.updateByQuery('{"query": "title=\\"title1\\"", "value": "des=\\"sdk_test_new\\""}')
    

    返回结果示例:

    {}
    
    • 根据id删除数据
    storageData.delete_by_id(1)
    

    返回结果示例:

    {}
    
    • 删除数据
      根据query删除数据
    storageData.delete(query="title=\"title1\"")
    
    {}
    

    清空数据表里的数据

    storageData.delete()
    

    返回结果示例:

    {}
    
    • 批量插入数据
    storageData.batch_save(records={"fields": "des", "values": ["\"sdk_test2\"","\"sdk_test3\""]})
    

    返回结果示例:

    {}
    

    示例

    如果存在app名称为 app_name,按以下示例进行操作

    from pdr_python_sdk.storage import *
    
    if __name__ == "__main__":
        c = connect()
        storageTable = c.storage("app_name")
        
        # 创建数据表 sdk_new1
        storageTable.create(data='{"name":"sdk_new1", "schema":"des TEXT"}')
        
        # 获取 app_name 可以操作的所有数据表
        response = storageTable.get_tables()
        print("get_tables response=", str(response))
        
        # 删除 app_name 中的数据表 sdk_new1
        response = storageTable.delete_table("sdk_new1")
        print("delete_table response=", str(response)
        
        # 删除 app_name 中的数据表 sdk_new2
        storageTable.delete_table("sdk_new2")
        # 创建数据表 sdk_new2
        storageTable.create(data='{"name":"sdk_new2", "schema":"title TEXT, des TEXT"}')
        response = storageTable.get_tables()
        
        # 获取 app_name 中数据表 sdk_new2 的所有数据
        storageTableData = storageTable.data("sdk_new2")
        # 插入数据到 app_name 数据表 sdk_new2 中
        response = storageTableData.insert({"fields": "title,des", "values": "\"lihong\",\"sdk_test\""})
        print("insert sdk_new2 response=", str(response))
        
        # 从 app_name 数据表 sdk_new2 中查询 title="lihong" 的数据
        response = storageTableData.query(query="title=\"lihong\"")
        print("query sdk_new8 response=", str(response))
        
        # 更新 app_name 数据表 sdk_new2 中 title="lihong" 数据的字段 des="sdk_test_new"
        response = storageTableData.updateByQuery('{"query": "title=\\"lihong\\"", "value": "des=\\"sdk_test_new\\""}')
        print("updateByQuery sdk_new8 response=", str(response))
        
        # 删除 app_name 数据表 sdk_new2 中 title="lihong" 的数据
        response = storageTableData.delete(query="title=\"lihong\"")
        print("delete query sdk_new2 response=", str(response))
        
        
        # 创建数据表 sdk_new3
        storageTable.create(data='{"name":"sdk_new3", "schema":"des TEXT"}')
        storageTableData = storageTable.data("sdk_new3")
        
        # 删除 app_name 数据表 sdk_new3 中所有数据
        response = storageTableData.delete()
        print("delete response=", str(response))
        
        # 插入数据
        response = storageTableData.insert({"fields": "des", "values": "\"sdk_test\""})
        print("insert response=", str(response))
        
        # 更新 app_name 数据表 sdk_new3 中 id=1 的数据
        response = storageTableData.update(1, '{"value": "des=\\"sdk_new\\""}')
        print("update response=", str(response)) 
        # 查看 app_name 数据表 sdk_new3 中 id=1 的数据
        response = storageTableData.query_by_id(1)
        
        # 删除 app_name 数据表 sdk_new3 中 id=1 的数据,等同于 storageTableData.delete_by_id(1)
        response = storageTableData.delete(query="id=1")
        print("delete by query response=", str(response))
        
        # 批量往 app_name 数据表 sdk_new3 中插入数据
        response = storageTableData.batch_save(records={"fields": "des", "values": ["\"sdk_test1\"","\"sdk_test2\"","\"sdk_test3\""]})
        # 查询 app_name 数据表 sdk_new3 中第一页,页面显示2条数据
        response = storageTableData.query(pageNo=1, pageSize=2)
        print("response=", str(response))
        
        #  查看 pp_name 数据表 sdk_new3 中所有数据
        response = storageTableData.query()
        print("batch_save response=", str(response))
    
    
    以上内容是否对您有帮助?
  • Qvm free helper
    Close