| <!--- |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| # Basic Kudu-Python examples |
| This directory contains basic examples of usage for the Kudu Python client. |
| These examples demonstrate the standard capabilities within the client: |
| |
| - **basic_example.py**: Basic CRUD operations (create, read, update, delete) |
| - **non_unique_primary_key.py**: Working with non-unique primary keys and auto-incrementing columns |
| - **array_example.py**: Using array data types with insert, scan, update, and delete operations |
| |
| ## To install the Python client |
| |
| ### Building from source |
| It's assumed the commands below are run from the directory where |
| this README.md file is located, i.e. from |
| `$KUDU_HOME/examples/python/basic-python-example`. |
| |
| _NOTE:_ This example assumes that all Kudu C++ components are already |
| built in `$KUDU_HOME/build/latest`. That directory is pointing to the |
| latest build, which is often times a debug build. If this is not the |
| desired approach, you will need to point the `latest` symbolic link |
| to the release build Kudu directory. |
| |
| ``` |
| export KUDU_HOME=/path/to/kudu |
| export LD_LIBRARY_PATH=$KUDU_HOME/build/latest/lib/exported |
| # For OS X |
| export DYLD_LIBRARY_PATH=$KUDU_HOME/build/latest/lib/exported |
| pushd $KUDU_HOME/python |
| pip install -r requirements.txt |
| python setup.py build_ext --inplace |
| python setup.py install |
| popd |
| ``` |
| |
| ### Installing from pypi |
| _NOTE:_ This example is pointing to the latest build, which is often |
| times a debug build. If this is not the desired approach, you will |
| need to point this to the release build. |
| ``` |
| export KUDU_HOME=/path/to/kudu |
| export LD_LIBRARY_PATH=$KUDU_HOME/build/latest/lib/exported |
| # For OS X |
| export DYLD_LIBRARY_PATH=$KUDU_HOME/build/latest/lib/exported |
| pip install kudu-python |
| ``` |
| |
| ## Running the examples |
| ``` |
| # Run the basic example |
| python basic_example.py --masters master1.address --ports 7051 |
| |
| # Run the non-unique primary key example |
| python non_unique_primary_key.py --masters master1.address --ports 7051 |
| |
| # Run the array data type example |
| python array_example.py --masters master1.address --ports 7051 |
| ``` |