Pythonクライアント

はじめに

以前のブログで、pythonコネクタについて紹介しました。 それ以降、 C_Client がRPMパッケージ化され、CentOSはデフォルトでPCREを同梱するようになったため、インストールも使用するのも簡単になりました。

ビデオ

ビデオに従って試したい場合は、こちらをご覧ください。

追加のボーナスとして、ビデオは非常にシンプルなソースコードも紹介します。

インストール

c_clientをインストールする

以下の抜粋は Node.js クライアントに関するブログから引用しました。

GridDB c_client(Pythonクライアントを使用するための前提条件)はここにあります: https://github.com/griddb/c_client 。 c_clientのインストールは前回のブログから簡素化されました。 ソースから自分でコンパイルする代わりに、便利なRPMが利用できるようになりました(リリースページはこちらにあります)。 最新のRPMをwgetしてインストールします。

$ wget \
https://github.com/griddb/c_client/releases/download/v4.2.0/griddb_c_client-4.2.0-1.linux.x86_64.rpm

次に、rpmをインストールします。

$ sudo rpm -ivh griddb_c_client-4.2.0-1.linux.x86_64.rpm

これで c_clientが/usr/ ディレクトリにインストールされ、準備が整いました。

Python クライアントをインストールする

Pythonクライアントのインストールは少し複雑ですが、それでも簡単です。 まず、GitHubからファイルをダウンロードしましょう。

$ wget \
https://github.com/griddb/python_client/archive/0.8.1.tar.gz

そして、解凍します。

$ tar xvzf 0.8.1.tar.gz

次に、依存するソフトウェアをインストールします。

$ wget https://prdownloads.sourceforge.net/swig/swig-3.0.12.tar.gz
tar xvfz swig-3.0.12.tar.gz
cd swig-3.0.12
./configure
make 
sudo make install

必要に応じて、pcreをインストールします。

$ sudo yum install pcre2-devel.x86_64

次に、Pythonクライアントを make します。

$ cd ../python_client
make

Pythonクライアントを作成しようとした時に次のエラーが発生した場合、

/usr/bin/ld: cannot find -lgridstore

簡単に修正できるので心配はありません。 原因は、Makefileがc_clientを指すように設定していないことです。 つまり、c_client/binの場所をLDFLAGSオプションに追加することで問題は解決します。</ p>

SWIG = swig -DSWIGWORDSIZE64
    CXX = g++
    
    ARCH = $(shell arch)
    
    LDFLAGS = -L/home/israel/c_client/bin -lpthread -lrt -lgridstore #added /home/israel/c_client_bin right here
    
    CPPFLAGS = -fPIC -std=c++0x -g -O2
    INCLUDES = -Iinclude -Isrc
    
    INCLUDES_PYTHON = $(INCLUDES)   \
                                    -I/usr/include/python3.6m
    
    PROGRAM = _griddb_python.so
    EXTRA = griddb_python.py griddb_python.pyc
    
    SOURCES =         src/TimeSeriesProperties.cpp \
                      src/ContainerInfo.cpp                 \
                      src/AggregationResult.cpp     \
                      src/Container.cpp                     \
                      src/Store.cpp                 \
                      src/StoreFactory.cpp  \
                      src/PartitionController.cpp   \
                      src/Query.cpp                         \
                      src/QueryAnalysisEntry.cpp                    \
                      src/RowKeyPredicate.cpp       \
                      src/RowSet.cpp                        \
                      src/TimestampUtils.cpp                        \
    
    all: $(PROGRAM)
    
    ... snip ...

適切な修正を行うと、makeは意図したとおりに動作するはずです。 次に環境変数を設定します。 適切な場所を指定します。

$ export LIBRARY_PATH=$LIBRARY_PATH:[insert path to c_client]
$ export  PYTHONPATH=$PYTHONPATH:[insert path to python_client]
$ export LIBRARY_PATH=$LD_LIBRARY_PATH:[insert path to c_client/bin]

これで、GridDB Clusterでcpythonの両方を使用できるようになりました。

サンプルコード

Pythonでの使用は非常に簡単なので、このブログでは紹介しませんが、興味がある方はブログの最初の方で紹介したビデオをご覧ください。 ビデオの内容に従うには、次のソースコードをダウンロードしてください。[download id=”26145″]

ブログの内容について疑問や質問がある場合は Q&A サイトである Stack Overflow に質問を投稿しましょう。 GridDB 開発者やエンジニアから速やかな回答が得られるようにするためにも "griddb" タグをつけることをお忘れなく。 https://stackoverflow.com/questions/ask?tags=griddb

One Comment

Leave a Reply

Your email address will not be published. Required fields are marked *