OceanBase
English日本語简体中文
ドキュメントホーム
製品
エコシステム
リリース

データベース

OceanBase CloudOceanBaseデータベース

データベース

OceanBase CloudOceanBaseデータベース
OceanBase CloudOceanBaseデータベース

OceanBaseデータベース

  • エコシステム統合の概要
  • ORMフレームワーク
    • Java
      • SpringBootサンプルプログラム
      • SpringBatchサンプルプログラム
      • Spring JDBCサンプルプログラム
      • SpringDataJPAサンプルプログラム
      • Hibernateサンプルプログラム
      • MyBatisサンプルプログラム
    • Python
      • SQLAlchemyによるOceanBaseデータベース接続サンプルプログラム
      • peeweeによるOceanBaseデータベース接続サンプルプログラム
      • Tortoise ORM による OceanBase データベース接続サンプルプログラム
    • Go
      • GORMサンプルプログラム
    • Rust
      • SeaORM による OceanBase データベース接続サンプルプログラム
    • Ruby
      • ActiveRecordによるOceanBaseデータベース接続サンプルプログラム
      • Sequel で OceanBase データベースに接続するサンプルプログラム
      • Ruby on RailsによるOceanBaseデータベース接続サンプルプログラム
    • Node.js
      • SequelizeでOceanBaseデータベースに接続する
      • TypeORMを使用してOceanBaseデータベースに接続する
      • Prismaを使用してOceanBaseデータベースに接続する
      • Drizzle ORMを使用してOceanBaseデータベースに接続する
    • C#
      • Dapperを使用してOceanBaseデータベースに接続する
      • SqlSugarを使用してOceanBaseデータベースに接続する
      • FreeSQLを使用してOceanBaseデータベースに接続する
    • PHP
      • Yii 2.0 ORMサンプルプログラム
      • Laravel Eloquent ORMサンプルプログラム
  • データベースのバージョン管理
    • Liquibaseを使用したOceanBaseデータベースのバージョンの管理
    • Flywayを使用してOceanBaseデータベースを統合し、バージョン管理を実現する
  • データ統合
    • dbtを使用したOceanBaseデータの分析
    • Flink DirectLoadを使用したOceanBaseのダイレクトインポート
    • SeaTunnelを使用したOceanBaseデータの読み取りと同期
    • Maxwellを使用したOceanBaseデータの読み取り
    • Debeziumを使用してOceanBaseに接続し、データを取得する
    • Spark Catalogを使用してOceanBaseデータベースに接続する
    • Apache NiFiを使用してOceanBaseデータベースと統合する
  • SQL開発
    • WebLogicを使用してOceanBaseデータベースに接続する
    • DBeaverを使用してOceanBaseデータベースに接続する
    • Navicatを使用してOceanBaseデータベースに接続する
    • DataGripでOceanBaseデータベースに接続する
    • TablePlusでOceanBaseデータベースに接続する
    • DMSを使用したOceanBaseデータベースの管理
  • 編成とスケジューリング
    • AirflowとOceanBaseデータベースの連携
    • PowerJobとOceanBaseデータベースの連携
    • DolphinSchedulerにOceanBaseデータソースを設定する
    • LinkisとOceanBaseデータベースの統合
  • 可視化ツール
    • SupersetとOceanBaseを使用したデータ分析
    • Power BIでOceanBaseに接続してデータを取得する
    • Quick BIでOceanBaseに接続してデータを取得する
    • Bytebaseを使用したOceanBaseインスタンスの管理
  • データベース管理
    • NineDataを使用したOceanBaseデータソースの管理
    • Bytebaseを使用したOceanBaseインスタンスの管理
  • AI
    • OpenAI
    • Qwen
    • OceanBaseデータベースとLangChainの統合
    • OceanBaseデータベースのベクトル検索機能とLlamaIndexの連携
    • OceanBaseデータベースのベクトル検索機能とDifyの連携
    • OceanBaseデータベースとn8nの連携
    • OceanBase MCP ServerとTraeの連携
    • OceanBaseデータベースとSpring AI Alibabaの連携
    • OceanBase MCP ServerとClineの連携
    • OceanBase MCP ServerとCursorの連携
    • OceanBase MCP ServerとContinueの連携
    • Google GenAI Toolboxを使用して独自のOceanBase MCP Serverを構築する
    • OceanBaseデータベースとCamelAIの連携
    • OceanBase VectorとFirecrawlの連携
    • OceanBase VectorとHugging Faceの連携
    • OceanBase VectorとOllamaの連携
    • OceanBaseデータベースとGoogle Geminiの連携
    • OceanBase VectorとCloudflare Workers AIの連携
    • OceanBase VectorとJina AIの連携
    • OceanBase MCP ServerとAugment Codeの連携
    • OceanBase MCP ServerとClaude Codeの連携
    • OceanBase MCP ServerとKiroの連携

PDF をダウンロード

ドキュメントフィードバック
  1. ドキュメントセンター
  2. OceanBaseデータベース
  3. master

SQLAlchemyによるOceanBaseデータベース接続サンプルプログラム

最終更新:2026-10-10 03:12:37

前提条件
手順
ステップ1:OceanBaseデータベースの接続文字列を取得する
ステップ2:SQLAlchemyライブラリをインストールする
ステップ3:test.pyファイルを作成し、データベース接続情報を入力する
ステップ4:test.pyファイルを実行する
エラー処理
関連ドキュメント

機能の適用範囲

SQLAlchemyはOceanBaseデータベースのMySQLモードで使用できます。

本記事では、SQLAlchemyを使用してOceanBaseデータベースに接続し、テーブルの作成、データの挿入、更新、クエリなどの基本的なデータベース操作を実行する方法について説明します。

前提条件

  • Python 3.xとpipがインストール済みであること。
  • OceanBaseデータベースがインストール済みで、MySQLモードのテナントが作成されていること。

手順

  1. OceanBaseデータベースの接続文字列を取得します。
  2. SQLAlchemyライブラリをインストールします。
  3. test.py ファイルを作成し、データベース接続情報を入力します。
  4. test.py ファイルを実行します。

ステップ1:OceanBaseデータベースの接続文字列を取得する

OceanBaseデータベースのデプロイ担当者または管理者から、該当するデータベース接続文字列を取得します。

obclient -h$host -P$port -u$user_name -p$password -D$database_name

パラメータ説明:

  • $host:OceanBaseデータベースへの接続IPアドレス。OceanBaseデータベースプロキシ(OceanBase Database Proxy、ODP)接続方式ではODPアドレスを使用し、直接接続方式ではOBServerノードのIPアドレスを使用します。

  • $port:OceanBaseデータベースへの接続ポート。ODP接続方式のデフォルトポートは 2883 で、ODPデプロイ時にカスタマイズ可能です。直接接続方式のデフォルトポートは 2881 で、OceanBaseデータベースのデプロイ時にカスタマイズ可能です。

  • $database_name:アクセス対象のデータベース名。

    注意

    テナントに接続するユーザーには、データベースに対する CREATE、INSERT、UPDATE、および SELECT 権限が付与されていなければなりません。ユーザー権限の詳細については、MySQLモードの権限分類を参照してください。

  • $user_name:テナントの接続アカウント。ODP接続の一般的な形式:ユーザー名@テナント名#クラスタ名 または クラスタ名:テナント名:ユーザー名。直接接続方式の形式:ユーザー名@テナント名。

  • $password:アカウントのパスワード。

接続文字列の詳細については、OBClientを使用したOceanBaseテナントへの接続を参照してください。

例:

obclient -hxxx.xxx.xxx.xxx -P2881 -utest_user001@mysql001 -p****** -Dtest

ステップ2:SQLAlchemyライブラリをインストールする

SQLAlchemyは、Pythonで最も広く使われているORM(オブジェクト関係マッピング)ライブラリの1つです。SQLツールキットとORMシステムを提供し、データベース操作を簡素化できます。SQLAlchemyは、MySQL、PostgreSQL、SQLiteなど、さまざまなデータベースバックエンドをサポートしています。

コマンドプロンプトまたはPowerShellターミナルを開き、以下のコマンドを実行してSQLAlchemyライブラリをインストールします。

pip install sqlalchemy mysqlclient

インストールが完了したら、以下のコマンドを実行してインストールが正常に完了したかどうかを確認します:

pip list | grep SQLAlchemy

説明

SQLAlchemyは多機能ORMライブラリであり、2つの使用方法を提供しています:CoreとORM。CoreはSQL言語を提供し、ORMはオブジェクト関係マッピング機能を提供します。本記事の例では主にORMの方法を使用します。

ステップ3:test.pyファイルを作成し、データベース接続情報を入力する

ステップ1:OceanBaseデータベースの接続文字列を取得する の情報に基づいて、test.py ファイルを作成し、データベース接続情報を入力します。

  1. test.py という名前のファイルを作成します。

  2. test.py ファイルに以下の内容を入力し、実際の状況に応じてデータベース接続情報を修正します。

    test.py ファイルの内容例は以下のとおりです:

    from sqlalchemy import create_engine, Column, Integer, String, MetaData, Table
    from sqlalchemy.ext.declarative import declarative_base
    from sqlalchemy.orm import sessionmaker
    
    # データベース接続情報
    DB_USER = 'test_user001@mysql001'
    DB_PASSWORD = '******'
    DB_HOST = 'xxx.xxx.xxx.xxx'
    DB_PORT = 2881
    DB_NAME = 'test'
    
    # データベース接続URLの作成
    DATABASE_URL = f"mysql+mysqldb://{DB_USER}:{DB_PASSWORD}@{DB_HOST}:{DB_PORT}/{DB_NAME}"
    
    # エンジンの作成
    engine = create_engine(DATABASE_URL)
    
    # 基底クラスの作成
    Base = declarative_base()
    
    # モデルの定義
    class User(Base):
        __tablename__ = 'users'
    
        id = Column(Integer, primary_key=True)
        name = Column(String(50), nullable=False)
        age = Column(Integer)
    
        def __repr__(self):
            return f"<User(id={self.id}, name='{self.name}', age={self.age})>"
    
    # テーブルの作成
    Base.metadata.create_all(engine)
    
    # セッションの作成
    Session = sessionmaker(bind=engine)
    session = Session()
    
    # データの挿入
    new_users = [
        User(name='John', age=20),
        User(name='Lucy', age=25),
        User(name='Tom', age=30)
    ]
    session.add_all(new_users)
    session.commit()
    
    # データの更新
    user = session.query(User).filter_by(name='Lucy').first()
    if user:
        user.age = 26
        session.commit()
    
    # データのクエリ
    users = session.query(User).all()
    for user in users:
        print(user)
    
    # セッションを閉じる
    session.close()
    

ステップ4:test.pyファイルを実行する

コマンドプロンプトまたはPowerShellターミナルを開き、test.py ファイルを実行して、データをクエリし、結果を出力します。

  1. test.py ファイルがあるディレクトリに移動します。

    例:

    cd D:\demo\demo
    
  2. test.py ファイルを実行します。

    例:

    python test.py
    

    実行結果は次のとおりです:

    <User(id=1, name='John', age=20)>
    <User(id=2, name='Lucy', age=26)>
    <User(id=3, name='Tom', age=30)>
    

エラー処理

SQLAlchemyを使用してOceanBaseデータベースに接続する際、さまざまなエラーが発生する可能性があります。以下は一般的なエラーとその対処方法です:

  1. 接続エラー:データベースに接続できない場合は、ホスト名、ポート、ユーザー名、パスワード、データベース名を含む接続パラメータが正しいかどうか確認してください。

  2. 権限エラー:権限に関連するエラーが発生した場合は、ユーザーが必要な操作を実行するために十分な権限を持っていることを確認してください。

  3. SQL構文エラー:SQLステートメントに構文エラーがある場合は、SQLステートメントの構文が正しいかどうか確認してください。

  4. データ型エラー:挿入したデータ型がテーブル定義とマッチしない場合は、挿入したデータ型が正しいことを確認してください。

コード内では、try-except ステートメントを使用してこれらのエラーをキャッチし、処理することで、エラー発生時にプログラムがクラッシュせずに適切に対処できるようにします。同時に、logging モジュールを使用してエラー情報を記録することで、デバッグや問題の調査が容易になります。

関連ドキュメント

  • OceanBaseデータベースへの接続方法の詳細については、接続方法の概要を参照してください。

  • データベース作成の詳細については、CREATE DATABASEを参照してください。

前のトピック

MyBatisサンプルプログラム
前へ

次のトピック

peeweeによるOceanBaseデータベース接続サンプルプログラム
次へ
このページの内容
前提条件
手順
ステップ1:OceanBaseデータベースの接続文字列を取得する
ステップ2:SQLAlchemyライブラリをインストールする
ステップ3:test.pyファイルを作成し、データベース接続情報を入力する
ステップ4:test.pyファイルを実行する
エラー処理
関連ドキュメント