Skip to content
This repository has been archived by the owner on Jan 22, 2025. It is now read-only.
/ databend-py Public archive

Databend Cloud Python Driver with native interface support

License

Notifications You must be signed in to change notification settings

databendlabs/databend-py

Folders and files

NameName
Last commit message
Last commit date
Dec 7, 2024
Jan 14, 2025
Dec 19, 2023
Jan 14, 2025
Jan 14, 2025
May 8, 2023
Dec 7, 2024
Oct 24, 2022
Sep 4, 2023
Dec 7, 2024
Jan 14, 2025
Dec 7, 2024
Dec 24, 2024
Oct 25, 2022
Dec 25, 2023
Dec 7, 2024

Notice

We strongly recommend using the databend-driver as it provides more comprehensive features.

databend-py

Databend Cloud Python Driver with native http interface support

image

image

image

image

Installation

pip install databend-py

Usage

Use the next code to check connection:

>>> from databend_py import Client
>>> client = Client(
    host='tenant--warehouse.ch.datafusecloud.com',
    database="default",
    user="user",
    port="443",
    secure=True,
    password="password",settings={"copy_purge":True,"force":True})
>>> print(client.execute("SELECT 1"))

The [host]{.title-ref}, [user]{.title-ref}, [password]{.title-ref} info will be found in databend cloud warehouse connect page as flows:

Pure Client example:

>>> from databend_py import Client
>>>
>>> client = Client.from_url('http://root@localhost:8000/db?secure=False&copy_purge=True')
>>>
>>> client.execute('SHOW TABLES')
[[], [('test',)]]
>>> client.execute("show tables",with_column_types=True)
[[('Tables_in_default', 'String')], [('test',)]] # [[(column_name, column_type)], [(data,)]]
>>> client.execute('DROP TABLE IF EXISTS test')
[]
>>> client.execute('CREATE TABLE test (x Int32)')
[]
>>> client.execute(
...     'INSERT INTO test (x) VALUES', [(1,)]
... )
1
>>> client.execute('INSERT INTO test (x) VALUES', [(200,)])
1

More usages examples find here.

Features

  • Basic SQL.
  • TLS support.
  • Query settings.
  • Types support:
    • Float32/64
    • [U]Int8/16/32/64/128/256
    • Date/Date32/DateTime('timezone')/DateTime64('timezone')
    • String
    • Array(T)
    • Nullable(T)
    • Bool

Compatibility

  • If databend version >= v0.9.0 or later, you need to use databend-py version >= v0.3.0.

License

Databend Python Driver is distributed under the [Apache license]{.title-ref}.