日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于Python DB-API的應用開發

本文介紹通過Python DB-API開發Lindorm寬表應用的方法和示例。

前提條件

  • 已安裝Python環境,且Python版本為3.7及以上版本。

  • 已將客戶端的IP地址添加至Lindorm白名單。如何添加,請參見設置白名單

使用限制

LindormServerless不支持通過Python DB-API訪問Lindorm寬表引擎。

操作步驟

  1. 執行pip install phoenixdb命令安裝phoenixdb,以1.2.0版本為例。

    pip install phoenixdb==1.2.0
  2. 指定連接數據庫的名稱、用戶名以及密碼,初始化連接參數。

    connect_kw_args = {'lindorm_user': '<userName>', 'lindorm_password': '<userPassword>', 'database': '<database>'}

    參數說明

    參數

    說明

    lindorm_user

    Lindorm的用戶名、密碼。

    如果忘記密碼,可以通過Lindorm寬表引擎的集群管理系統修改密碼,具體操作請參見管理用戶

    lindorm_password

    database

    數據庫名稱。您可以指定任意有權限的數據庫。

    如果沒有指定數據庫,則默認連接default數據庫。

  3. 指定數據庫連接地址database_url和連接的初始化參數connect_kw_args,創建數據庫連接。

    database_url = '<lindorm_sql_url>'
    connection = phoenixdb.connect(database_url, autocommit=True, **connect_kw_args)

    參數說明

    參數

    說明

    database_url

    Lindorm寬表SQL地址。獲取連接地址,請參見查看連接地址

    如果客戶端部署在與Lindorm相同VPC的ECS上,可以使用專有網絡地址,否則請先開通公網地址,并使用公網地址。

    配置時,請刪除連接地址http之前的字符串。

    示例:database_url = 'http://ld-bp10m54739kg9****-proxy-lindorm.lindorm.rds.aliyuncs.com:30060'

    autocommit

    自動提交,取值必須為true。

    **connect_kw_args

    將步驟2connect_kw_args中的所有關鍵字參數傳遞給phoenixdb.connect()方法,用于建立數據庫連接。

  4. 建立連接后,執行DDL操作和DML操作,示例代碼如下。

    with connection.cursor() as statement:
        # 創建表
        sql_create_table = "create table if not exists test_python(c1 integer, c2 integer, primary key(c1))"
        print(sql_create_table)
        statement.execute(sql_create_table)
    
        # 插入一行數據
        sql_upsert = "upsert into test_python(c1, c2) values(1,1)"
        print(sql_upsert)
        statement.execute(sql_upsert)
    
        # 插入多行數據
        with connection.cursor() as stat:
            sql_upsert = "upsert into test_python(c1, c2) values(?,?)"
            print(sql_upsert)
            stat.executemany(sql_upsert, [(2, 2), (3, 3)])
    
        # 刪除數據
        sql_delete = "delete from test_python where c1=2"
        print(sql_delete)
        statement.execute(sql_delete)
    
        # 修改數據
        sql_update = "upsert into test_python(c1, c2) values(1,10)"
        print(sql_update)
        statement.execute(sql_update)
    
        # 查詢
        sql_select = "select * from test_python"
        print(sql_select)
        statement.execute(sql_select)
        rows = statement.fetchall()
        print(rows)
    
        # 禁用表。寬表引擎版本為2.2.16至2.4.1時,刪除表前需先禁用表
        sql_offline_table = "offline table test_python"
        print(sql_offline_table)
        statement.execute(sql_offline_table)
    
        # 刪除表
        sql_drop_table = "drop table if exists test_python"
        print(sql_drop_table)
        statement.execute(sql_drop_table)
    
    # 關閉連接
    connection.close()
    說明

    完整的示例代碼請參見Python使用示例

語法參考

關于Lindorm寬表SQL的語法使用請參見Lindorm寬表SQL語法手冊