griddb / python_client

GridDB Python Client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GridDB Python Client

Overview

GridDB Python Client is developed using GridDB C Client and SWIG (Simplified Wrapper and Interface Generator).

Operating environment

Building of the library and execution of the sample programs have been checked in the following environment.

OS: CentOS 7.9(x64) (GCC 4.8.5)
SWIG: 4.0.2
Python: 3.10
GridDB C client: V5.0 CE(Community Edition)
GridDB server: V5.0 CE, CentOS 7.9(x64) (GCC 4.8.5)

OS: Ubuntu 18.04/20.04(x64) (gcc 7.5.0)
SWIG: 4.0.2
Python: 3.10
GridDB C client: V5.0 CE (Note: If you build from source code, please use GCC 4.8.5.)
GridDB server: V5.0 CE, Ubuntu 18.04(x64) (Note: If you build from source code, please use GCC 4.8.5.)

OS: Windows 10(x64) (VS2017)
SWIG: 4.0.2
Python: 3.10
GridDB C client: V5.0 CE
GridDB server: V5.0 CE, CentOS 7.9(x64) (GCC 4.8.5)

OS: MacOS Catalina (x86_64)
SWIG: 4.0.2
Python: 3.10
GridDB C client: V5.0 CE
GridDB server: V5.0 CE, Centos 7.9(x64) (GCC 4.8.5)

QuickStart (CentOS, Ubuntu)

Preparations

Install SWIG as below.

$ wget https://github.com/swig/swig/archive/refs/tags/v4.0.2.tar.gz
$ tar xvfz v4.0.2.tar.gz
$ cd swig-4.0.2
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Note: If CentOS, you might need to install pcre in advance.
$ sudo yum install pcre2-devel.x86_64

Install GridDB Server and C Client. (Note: If you build them from source code, please use GCC 4.8.5.)

Set CPATH and LIBRARY_PATH.

export CPATH=$CPATH:<Python header file directory path>

export LIBRARY_PATH=$LIBRARY_PATH:<C client library file directory path>

Install Pandas and Numpy as below:

$ python3 -m pip install numpy
$ python3 -m pip install pandas

Build and Run

1. Execute the command on project directory.

$ make

2. Set the PYTHONPATH variable for griddb Python module files.

$ export PYTHONPATH=$PYTHONPATH:<installed directory path>

3. Import griddb_python in Python.

How to run sample

GridDB Server need to be started in advance.

1. Set LD_LIBRARY_PATH

    $ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:<C client library file directory path>

2. The command to run sample

    $ python3 sample/sample1.py <GridDB notification address> <GridDB notification port>
        <GridDB cluster name> <GridDB user> <GridDB password>
      -->Person: name=name02 status=False count=2 lob=[65, 66, 67, 68, 69, 70, 71, 72, 73, 74]

QuickStart (Windows)

Using source code

Please refer to Cmake Build Guide

Using MSI

Install Python Client

Install the MSI package, the package is extracted into C:/Program Files/griddb/Python Client/X.X.X folder.

Execute a Python client sample program

  • Put sample1.py into C:/Program Files/GridDB/Python Client/X.X.X
  • Run following command to execute program
    <PATH_TO>/python.exe sample1.py <GridDB notification address> <GridDB notification port>
            <GridDB cluster name> <GridDB user> <GridDB password>
    

Note: X.X.X is the software version.

QuickStart (MacOS)

Preparations

Install SWIG as below.

$ wget https://github.com/swig/swig/archive/refs/tags/v4.0.2.tar.gz
$ tar xvfz v4.0.2.tar.gz
$ cd swig-4.0.2
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Note: If MacOS, you might need to install pcre in advance.
$ brew install pcre

Install GridDB Server and C Client. (Note: If you build them from source code, please use clang 11.0.0)

Set CPATH and LIBRARY_PATH.

export CPATH=$CPATH:<Python header file directory path>

export LIBRARY_PATH=$LIBRARY_PATH:<C client library file directory path>

Install Pandas and Numpy as below:

$ python3 -m pip install numpy
$ python3 -m pip install pandas

Build and Run

1. Execute the command on project directory.

$ make

2. Set the PYTHONPATH variable for griddb Python module files.

$ export PYTHONPATH=$PYTHONPATH:<installed directory path>

3. Import griddb_python in Python.

How to run sample

GridDB Server need to be started in advance.

1. Set DYLD_LIBRARY_PATH

    export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:<C client library file directory path>

2. The command to run sample

    $ python3 sample/sample1.py <GridDB notification address> <GridDB notification port>
        <GridDB cluster name> <GridDB user> <GridDB password>
      -->Person: name=name02 status=False count=2 lob=[65, 66, 67, 68, 69, 70, 71, 72, 73, 74]

Function

(available)

  • STRING, BOOL, BYTE, SHORT, INTEGER, LONG, FLOAT, DOUBLE, TIMESTAMP, BLOB type for GridDB
  • put single row, get row with key
  • normal query, aggregation with TQL
  • Multi-Put/Get/Query (batch processing)
  • Array type for GridDB
  • timeseries-specific function, affinity

(not available)

  • GEOMETRY type for GridDB

Please refer to the following files for more detailed information.

Note:

  1. The current API might be changed in the next version. e.g. ContainerInfo
  2. When you install C Client with RPM or DEB, you don't need to set LIBRARY_PATH and LD_LIBRARY_PATH.
  3. There is Python Client Package for CentOS, Ubuntu and MacOS on The Python Package Index (PyPI) .

Community

  • Issues
    Use the GitHub issue function if you have any requests, questions, or bug reports.
  • PullRequest
    Use the GitHub pull request function if you want to contribute code. You'll need to agree GridDB Contributor License Agreement(CLA_rev1.1.pdf). By using the GitHub pull request function, you shall be deemed to have agreed to GridDB Contributor License Agreement.

License

GridDB Python Client source license is Apache License, version 2.0.

About

GridDB Python Client

License:Apache License 2.0


Languages

Language:C++ 45.1%Language:SWIG 34.7%Language:C 18.1%Language:Python 1.0%Language:CMake 0.6%Language:Makefile 0.5%