AG-TECH CORPAG-TECH CORP

ENGLISH

はじめてのActian Zen「Pythonからのデータアクセス」編

 

シリーズ第2回目では、プログラミングの初心者からプロにまで幅広く利用されている”Python”でコードを書く際に、Actian Zenの大きな特徴であるSQL/NoSQLのデュアルインターフェイスからどのようにすればデータアクセスできるのか、その具体的な方法を紹介していきます。

 

※「はじめてのActian Zen」とは・・・。Actian Zenって一体どんなデータベース?Actian Zenでどんなことができるの?といった内容を知りたい方々へ(もしくは改めてActian Zenのことを知りたいユーザーの皆様へ)、Actian Zenに関する基本的な内容を連載形式でお伝えしていく記事になります。

 

高速なデータアクセスを実現する「Btrieve API」とは

Actian Zenの前身であるBtrieveがリリースされて以来、40年近く「Btrieve API」というデータアクセス用のローレベルAPI を提供しており、所謂NoSQLインターフェイスを使用したデータアクセスが可能です。

 

Btrieve APIを使用してデータベースに直接アクセスすることで、他社のSQL系データベース製品だけではなく、時系列データベースやドキュメント型データベースといったNoSQL系データベース製品よりも高速にデータアクセスできるようになります。(もちろん、皆様が慣れ親しんでいるSQLインターフェイスからのデータアクセスも可能です。)

Btrieve APIが「Btrieve 2 API」に進化した

Btrieve APIは、主にC/C++やVisual Basic、COBOLの開発者が利用してきましたが、2018年にリリースされたActian Zen v13で、オブジェクト指向スクリプト言語に対応した「Btrieve 2 API」が新しく追加されました。「Btrieve 2 API」は、Perl、PHP、および Pythonでの利用が可能です。

 

Btrieve 2 APIは、Btrieve APIと比べてよりシンプルかつ直感的なオブジェクト指向のインターフェイスであり、関数の学習コストを大幅にカットすることができます。(実際に私も両方の関数を学んでみましたが、Btrieve 2 APIのほうがより早く理解できるように思います。)上記のスクリプト言語以外では、C/C++やC#にも対応していますので、是非ご活用いただければと思います。

Btrieve 2 APIモジュールを読み込みましょう

ここからは本題の、PythonからActian Zenにアクセスするための環境構築の手順を紹介していきます。シンプルな流れになっていますので、一緒に試しながらブログをお読みください。

 

バージョンについてですが、Actian Zenはv14 SP2、Pythonは3.9.x(Windows版)をインストールして使用することになりますので、既にその他のバージョンをお使いの方は別のPCで新規にインストールいただくか、「Actian ドキュメント ポータル(日本語版)」の”Python での Btrieve の使用”で異なるバージョンやLinux上での手順をご確認ください。

 

(Pythonは、一台のPCに複数のバージョンを同時にインストールできますが、Actian Zenは1つのバージョンのみインストール可能となります。その点、ご留意ください。)

 

また、上記バージョンの組み合わせについては、Btrieve 2 APIのSDKに同梱されているPerl, PHP, Python用のSWIG(Simplified Wrapper and Interface Generator)ファイルを使用して、Python向けのBtrieve 2 APIモジュールを弊社のほうで事前に作成しており、皆様もご使用いただけます。(下記手順3に記載のURLよりダウンロード可能)

 

このモジュールを使用することで、従来の環境構築に必要だった作業を大幅にカットすることができています!では、手順の説明に移りましょう。

1)Actian Zen v14 SP2のインストール

以下のURLより、Actian Zen v14の評価版をお申込みいただきますと、弊社からダウンロード用のURLを記載したメールを送信いたします。そのURLよりActian Zen v14 SP2のインストーラーをダウンロードし、インストールします。

 

– Actian Zen v14評価版のお申し込み
https://www.agtech.co.jp/blog/zen/v14/trial/

 


(Actian Zen SP2 Workgroupのインストール開始画面)

2)Python 3.9.xのインストール

以下のURLより、64ビット版Python 3.9.xのインストーラー(Windows x86-64 executable installer)をダウンロードし、インストールします。

 

– Python 3.9.xのダウンロード
https://www.python.org/downloads/windows/

 

インストール時には、以下のオプションにチェックを入れることで、PythonのスクリプトをPC上のどの場所からでも実行することができるようになります。(今回のインストールではチェックを入れるようにお願いします。)

 


(Python 3.9.xのインストール開始画面)

3)Btrieve 2 APIモジュールのダウンロード

ローカル上の任意の場所に「MyPrograms」フォルダを新規作成し(※)、以下のURLより、Btrieve 2 APIモジュール一式をダウンロードします。ZIPファイルを解凍後、”_btrievePython.pyd”と” btrievePython.py”を「MyPrograms」フォルダに保存します。(※ 共有サーバー上でプログラムを実行するとエラーになりますので、ローカル上に「MyPrograms」フォルダを作成する必要があります。)

 

– Btrieve 2 APIモジュールのダウンロード
https://s3-ap-northeast-1.amazonaws.com/agtech.co.jp/download/blog/Btrieve2API_Python.zip

4)Pythonプログラムの実行

上記3でダウンロードしたZIPファイルには、Btrieve 2 API を記述したPythonのサンプルプログラム(Sample_Btrieve2API_Python.py)が同梱されています。このプログラムも「MyPrograms」フォルダに保存します。

 

実際にコードの中身を確認いただくと、次のような記載がありますが、5行目でBtrieve 2 APIモジュールを読み込んでいるのが分かります。

 

import os
os.add_dll_directory (“C:\Program Files\Actian\Zen\Bin”)
import sys
import struct
import btrievePython as btrv

 

※ もし、「ImportError: DLL load failed: 指定されたモジュールが見つかりません。」といったようなエラーが発生した場合は、Visual Studio 2015、2017、および 2019 用 Microsoft Visual C++ 再頒布可能パッケージの「x64: vc_redist.x64.exe」をダウンロードし、インストールします。

 

 

さぁ、コマンドプロンプトやSpyderといったアプリケーションを起動しましょう。そして「MyPrograms」フォルダをカレントディレクトリとして、サンプルプログラム(Sample_Btrieve2API_Python.py)を以下の手順で実行してみましょう。

 

1)データベースに新しいテーブルを作成し、入力した名前を登録したレコードを順番に挿入します。
2)挿入したレコードの合計数をカウントし、レコード数を表示します。
3)入力した名前でテーブルを検索し、該当のレコードが見つかったかどうかを表示します。>

 

このプログラムの内容を理解し、実行できたことで、Btrieve 2 APIマスターの最初の一歩を踏み出しました!

 

※本格的にBtrieve 2 APIを学習されたい方向けの新しいブログ記事を後日公開予定です。(代表的な関数とPython上でのそれらの具体的な使用方法について紹介します。)どうぞご期待ください。

 

なお、SQLインターフェイスを使用してデータアクセスするには、pyodbcを使用します。このライブラリは、下記のようにpipコマンドをコマンドプロンプト上で実行することでインストールできます。

 

pip install pyodbc

 

※ もし、「error: Microsoft Visual C++ 14.0 is required. Get it with “Build Tools for Visual Studio”:」といったようなエラーが発生した場合は、最新版の「Build Tools for Visual Studio 2019」もしくは「Build Tools for Visual Studio 2017」の「vs_BuildTools.exe」をダウンロードし、インストールします。

 

SQLについても、Pythonのサンプルプログラム(Sample_SQL_Python.py)が上記手順3でダウンロードしたZIPファイルに同梱されています。先のサンプルプログラムと同様の仕様になっていますので、上記pipコマンドを実行のうえ、お試しください。

 

また、以下の開発者向けページもあわせて参照ください。(CODE PROJECTというサイトに掲載されたActian Zen関連ページの翻訳版になります。)

 

– Linux(Raspberry Pi)環境で実行するPythonプログラム
https://www.agtech.co.jp/blog/zen/reference/codeproject02/

一覧に戻る

Contactお問い合わせ

お気軽にお問い合わせください。

お問い合わせ

    必須会社名

    個人のお客様は「個人」と入力してください。

    必須お名前
    必須メールアドレス
    必須メールアドレス(確認)
    必須ライセンス ありなし
    ダウンロード目的