はじめてのActian Zen「Pythonからのデータアクセス」編
「はじめてのActian Zen」シリーズ・第2回目では、プログラミングの初心者からプロにまで幅広く利用されている”Python”でコードを書く際に、Actian Zenの大きな特徴であるSQL/NoSQLのデュアルインターフェイスからどのようにすればデータアクセスできるのか、その具体的な方法を紹介していきます。
※「はじめてのActian Zen」とは・・・。
株式会社エージーテックのWebマーケティング担当者が発信する、データベース製品「Actian Zen」の詳細や、関連知識の習得などに役立つ情報が数多く掲載されたブログ記事シリーズです。
<はじめてのActian Zenシリーズの一覧>
1)「4つの”S”」編
2)「Pythonからのデータアクセス」編(←当ページ)
3)「NoSQL?それともRDB?」編
4)「データヒストリアン」編
※ 当サイトを初めてご覧になった方は、会社紹介のブログ記事からお読みください。
*目次*
高速なデータアクセスを実現する「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はv15 SP2、Pythonは3.11.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 v15 SP2のインストール
以下のURLより、Actian Zen v15 SP2の評価版をお申込みいただきますと、弊社からダウンロード用のURLを記載したメールを送信いたします。そのURLよりActian Zen v15 SP2のインストーラーをダウンロードし、インストールします。
– Actian Zen v15評価版のお申し込み
▼ http://www.agtech.co.jp/actian/zen/v15/trial/
(Actian Zen Workgroupのインストール開始画面) |
2)Python 3.11.xのインストール
以下のURLより、64ビット版Python 3.11.xのインストーラー(Windows x86-64 executable installer)をダウンロードし、インストールします。
– Python 3.11.xのダウンロード
▼ https://www.python.org/downloads/windows/
インストール時には、以下のオプションにチェックを入れることで、PythonのスクリプトをPC上のどの場所からでも実行することができるようになります。(今回のインストールではチェックを入れるようにお願いします。)
(Pythonのインストール開始画面) |
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/