すべてのプロダクト
Search
ドキュメントセンター

Lindorm:Python DB-API を使用してアプリケーションを開発する

最終更新日:Nov 09, 2025

このトピックでは、Python DB-API を使用して LindormTable に基づくアプリケーションを開発する方法について説明し、例を示します。

前提条件

  • Python 3.7 以降がインストールされていること。

  • クライアントの IP アドレスが Lindorm ホワイトリスト に追加されていること。

制限事項

Python DB-API は、Lindorm Serverless インスタンスの LindormTable への接続には使用できません。

手順

  1. pip install phoenixdb コマンドを実行して phoenixdb をインストールします。次のサンプルコマンドは、phoenixdb V1.2.0 をインストールする方法を示しています。

    pip install phoenixdb==1.2.0
  2. アクセスするデータベースの名前、データベースへのアクセスに使用するユーザー名とパスワードなど、データベースへの接続を確立するために必要なパラメーターを指定します。

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

    パラメーターの説明

    パラメーター

    説明

    lindorm_user

    Lindorm インスタンスへの接続に使用されるユーザー名とパスワード。

    パスワードを忘れた場合は、LindormTable のクラスター管理システムで パスワードを変更 できます。

    lindorm_password

    database

    アクセスするデータベースの名前。アクセス権限のある既存のデータベースに接続できます。

    データベースを指定しない場合、デフォルトのデータベースに接続されます。

  3. database_url および connect_kw_args パラメーターを指定して、データベースへの接続を確立します。

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

    パラメーターの説明

    パラメーター

    説明

    database_url

    SQL を使用して LindormTable にアクセスするために使用されるエンドポイント。エンドポイントの取得方法の詳細については、「エンドポイントの表示」をご参照ください。

    クライアントが Lindorm インスタンスと同じ仮想プライベートネットワーク (VPC) 内にある Elastic Compute Service (ECS) インスタンスにデプロイされている場合は、VPC エンドポイントを使用して LindormTable にアクセスできます。それ以外の場合は、LindormTable のパブリックエンドポイントを有効にしてから、パブリックエンドポイントを使用して LindormTable にアクセスします。

    このパラメーターをエンドポイントに設定する場合、Lindorm コンソールから取得したエンドポイントから http より前の文字列を削除します。

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

    autocommit

    コマンドを自動的にコミットするかどうかを指定します。このパラメーターは True に設定する必要があります。

    **connect_kw_args

    ステップ 2 で指定した connect_kw_args のパラメーター設定。この設定は、データベースへの接続を確立するために phoenixdb.connect() メソッドに渡されます。

  4. データベースに接続した後、データベースで DDL および DML 操作を実行できます。次のコードは、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)
    
        # 1 行のデータを挿入します。
        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)
    
        # テーブルを無効にします。インスタンスの LindormTable のバージョンが 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 の例」をご参照ください。

リファレンス

詳細については、「LindormTable の SQL リファレンス」をご参照ください。