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
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
pip install langchain-clickzetta[dev]
Includes pytest, ruff, black, mypy, and other development tools.
Singdata Environment Configuration
Obtain Singdata Access
-
Register a Singdata account
-
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