This is the implementation of the YugabyteDB data handler for MindsDB.

YugabyteDB is a high-performance, cloud-native distributed SQL database that aims to support all PostgreSQL features. It is best fit for cloud-native OLTP (i.e. real-time, business-critical) applications that need absolute data correctness and require at least one of the following: scalability, high tolerance to failures, or globally-distributed deployments.

Implementation

This handler is implemented using psycopg2, a Python library that allows you to use Python code to run SQL commands on the YugabyteDB database.

The required arguments to establish a connection are as follows:

  • user is the database user.
  • password is the database password.
  • host is the host name, IP address, or URL.
  • port is the port used to make TCP/IP connection.
  • database is the database name.
  • schema is the schema to which your table belongs.

If you installed MindsDB locally via pip, you need to install all handler dependencies manually. To do so, go to the handler’s folder (mindsdb/integrations/handlers/yugabyte_handler) and run this command: pip install -r requirements.txt.

Usage

In order to make use of this handler and connect to the YugabyteDB database in MindsDB, the following syntax can be used:

CREATE DATABASE yugabyte_datasource
WITH
    engine = 'yugabyte',
    parameters = {
        "user": "admin",
        "password": "1234",
        "host": "127.0.0.1",
        "port": 5433,
        "database": "yugabyte",
        "schema": "your_schema_name"
    };

You can use this established connection to query your table as follows:

SELECT *
FROM yugabyte_datasource.demo;

NOTE : If you are using YugabyteDB Cloud with MindsDB Cloud website you need to add below 3 static IPs of MindsDB Cloud to allow IP list for accessing it publicly.

18.220.205.95
3.19.152.46
52.14.91.162