Installation and Configuration

This guide will help you quickly install and configure the LangChain-Singdata integration.

Installation

Install via pip (Recommended)

pip install langchain-clickzetta

Development Installation

If you want to install from source or contribute to development:

git clone https://github.com/yunqiqiliang/langchain-clickzetta.git
cd langchain-clickzetta/libs/clickzetta
pip install -e ".[dev]"

Dependency Requirements

Python Version

  • Python 3.9 or higher

Core Dependencies

The following dependencies are installed automatically with the package:

langchain-core>=0.1.0
clickzetta-connector-python>=0.8.92
clickzetta-zettapark-python>=0.1.3
sqlalchemy>=2.0.0
numpy>=1.20.0
pydantic>=2.0.0
typing-extensions>=4.0.0

Optional Dependencies

Chinese AI Optimization (Recommended)

pip install dashscope  # Alibaba Cloud DashScope platform

Development Tools

pip install langchain-clickzetta[dev]

Includes pytest, ruff, black, mypy, and other development tools.

Singdata Environment Configuration

Obtain Singdata Access

  1. Register a Singdata account

  2. Obtain connection information You need the following 7 connection parameters:

    • service - Service address
    • instance - Instance name
    • workspace - Workspace
    • schema - Schema name
    • username - Username
    • password - Password
    • vcluster - Virtual cluster name

Environment Variable Configuration

Create a .env file or set environment variables:

# Singdata connection configuration
export CLICKZETTA_SERVICE="your-service"
export CLICKZETTA_INSTANCE="your-instance"
export CLICKZETTA_WORKSPACE="your-workspace"
export CLICKZETTA_SCHEMA="your-schema"
export CLICKZETTA_USERNAME="your-username"
export CLICKZETTA_PASSWORD="your-password"
export CLICKZETTA_VCLUSTER="your-vcluster"

# Optional: DashScope configuration (recommended for Chinese AI)
export DASHSCOPE_API_KEY="your-dashscope-api-key"

Connection Configuration File

You can also use a configuration file by creating ~/.clickzetta/connections.json:

{
  "default": {
    "service": "your-service",
    "instance": "your-instance",
    "workspace": "your-workspace",
    "schema": "your-schema",
    "username": "your-username",
    "password": "your-password",
    "vcluster": "your-vcluster"
  },
  "uat": {
    "service": "uat-service",
    "instance": "uat-instance",
    "workspace": "test",
    "schema": "test_schema",
    "username": "test-user",
    "password": "test-password",
    "vcluster": "test-cluster"
  }
}

Verify Installation

Basic Import Test

# Test basic import
try:
    from langchain_clickzetta import ClickZettaEngine
    print("LangChain Singdata import successful")
except ImportError as e:
    print(f"Import failed: {e}")

Connection Test

from langchain_clickzetta import ClickZettaEngine

# Create engine instance
engine = ClickZettaEngine(
    service="your-service",
    instance="your-instance",
    workspace="your-workspace",
    schema="your-schema",
    username="your-username",
    password="your-password",
    vcluster="your-vcluster"
)

# Test connection
try:
    results, columns = engine.execute_query("SELECT 1 as test")
    print("Singdata connection successful")
    print(f"Test result: {results}")
except Exception as e:
    print(f"Connection failed: {e}")

Full Feature Test

from langchain_clickzetta import (
    ClickZettaEngine,
    ClickZettaVectorStore,
    ClickZettaStore
)
from langchain_community.embeddings import DashScopeEmbeddings

# Initialize components
engine = ClickZettaEngine(
    # ... your connection parameters
)

# Test vector store
try:
    embeddings = DashScopeEmbeddings(
        dashscope_api_key="your-api-key",
        model="text-embedding-v4"
    )

    vector_store = ClickZettaVectorStore(
        engine=engine,
        embedding=embeddings,
        table_name="test_vectors"
    )
    print("Vector store initialization successful")
except Exception as e:
    print(f"Vector store initialization failed: {e}")

# Test key-value store
try:
    store = ClickZettaStore(engine=engine, table_name="test_store")
    print("Key-value store initialization successful")
except Exception as e:
    print(f"Key-value store initialization failed: {e}")

FAQ

Connection Issues

Issue: Connection timeout

Solution:
1. Check network connectivity
2. Confirm the Singdata service address is correct
3. Increase the connection_timeout parameter

Issue: Authentication failed

Solution:
1. Confirm username and password are correct
2. Check user permissions
3. Confirm the vcluster parameter is correct

Dependency Issues

Issue: ModuleNotFoundError: No module named 'clickzetta'

Solution:
pip install clickzetta-connector-python

Issue: Version conflict

Solution:
pip install --upgrade langchain-clickzetta

Permission Issues

Issue: Insufficient permissions, unable to create table

Solution:
1. Contact administrator to grant CREATE TABLE permission
2. Use an existing table name
3. Confirm workspace and schema permissions

Tips

  • It is recommended to use connection pools in production environments
  • Regularly update to the latest version
  • Use environment variables to manage sensitive information
  • Enable logging for debugging