snowflake-data-exchange-agent


Namesnowflake-data-exchange-agent JSON
Version 0.0.19 PyPI version JSON
download
home_pageNone
SummaryData exchange agent for migrations and validation
upload_time2025-10-14 21:36:30
maintainerNone
docs_urlNone
authorNone
requires_python<3.13,>=3.10
licenseApache License, Version 2.0
keywords snowflake analytics cloud data data-analysis data-analytics data-engineering data-management data-processing data-science data-visualization data-warehouse database
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Snowflake Data Exchange Agent

[![License Apache-2.0](https://img.shields.io/:license-Apache%202-brightgreen.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)
[![Python](https://img.shields.io/badge/python-3.10--3.12-blue)](https://www.python.org/downloads/)

A REST API service for database migrations and data validation. Supports multiple databases including Snowflake, PostgreSQL, and SQL Server with queue-based task processing.

## Quick Start

```bash
# Install
pip install snowflake-data-exchange-agent

# Run
data-exchange-agent --port 8080

# Test
curl http://localhost:8080/health
```

## Installation

### From PyPI (Production)
```bash
pip install snowflake-data-exchange-agent
```

### Requirements & Dependencies

**Python Version**: 3.10, 3.11, or 3.12 (3.13 not yet supported)

**Available dependency groups**:
- `development`: Testing and development tools (pytest, ruff, etc.)
- `all`: Includes all development dependencies

**Core dependencies include**:
- Snowflake Connector for Python
- PySpark for data processing
- Flask + Waitress for REST API
- PostgreSQL support (psycopg2-binary)
- AWS SDK (boto3)

## Configuration

Create `src/data_exchange_agent/configuration.toml`:

```toml
# API settings
[api_configuration]
key = "your-api-key"
host = "0.0.0.0"
port = 5001
workers = 4

# Database connections
[connection.postgresql]
driver_name = "postgresql"
username = "user"
password = "password"
host = "localhost"
port = 5432
database = "mydb"

# Task queue
[task_queue]
type = "sqlite"
database_path = "~/.data_exchange_agent/tasks.db"
```

For Snowflake, create `~/.snowflake/config.toml`:

```toml
[connections.default]
account = "your_account.region"
user = "your_username"
password = "your_password"
warehouse = "COMPUTE_WH"
database = "PRODUCTION_DB"
```

## API Usage

### Command Line
```bash
# Basic usage
data-exchange-agent

# Production settings
data-exchange-agent --workers 8 --port 8080

# Debug mode
data-exchange-agent --debug --port 5001
```

### Health Check
```http
GET /health
```
```json
{
  "status": "healthy",
  "version": "0.0.18",
  "database_connections": {
    "snowflake": "connected"
  }
}
```

### Task Management
```http
# Start processing
GET /handle_tasks

# Stop processing
GET /stop

# Get status
GET /get_handling_tasks_status

# Task count
GET /get_tasks_count
```

### Add Task
```http
POST /tasks
Content-Type: application/json
```
```json
{
  "task_type": "data_extraction",
  "source_config": {
    "database": "postgresql",
    "query": "SELECT * FROM users"
  },
  "destination_config": {
    "type": "snowflake_stage",
    "stage": "@data_stage/users/"
  }
}
```

## Development

### Setup
```bash
git clone https://github.com/snowflakedb/migrations-data-validation.git
cd migrations-data-validation/data-exchange-agent
pip install -e .[development]
```

### Testing
```bash
# Run all tests
pytest

# With coverage
pytest --cov=src/data_exchange_agent

# Run specific test types
pytest tests/unit/           # Unit tests only
pytest -m "not integration" # Non-integration tests
```

### Code Quality
```bash
# Format code
ruff format .

# Lint code
ruff check .

# Auto-fix linting issues
ruff check --fix .
```

## 🤝 Contributing

We welcome contributions! See our [Contributing Guide](../CONTRIBUTING.md) for details on how to collaborate, set up your development environment, and submit PRs.

---

## 📄 License

This project is licensed under the Apache License 2.0. See the [LICENSE](../LICENSE) file for details.

## 🆘 Support

- **Documentation**: [Full documentation](https://github.com/snowflakedb/migrations-data-validation)
- **Issues**: [GitHub Issues](https://github.com/snowflakedb/migrations-data-validation/issues)

---

**Developed with ❄️ by Snowflake**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "snowflake-data-exchange-agent",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.10",
    "maintainer_email": null,
    "keywords": "Snowflake, analytics, cloud, data, data-analysis, data-analytics, data-engineering, data-management, data-processing, data-science, data-visualization, data-warehouse, database",
    "author": null,
    "author_email": "\"Snowflake, Inc.\" <snowflake-python-libraries-dl@snowflake.com>",
    "download_url": "https://files.pythonhosted.org/packages/71/bd/42d8bd995eeecb5f73b2ed4f3c48e2e831167169b1476cc87ba155d7a320/snowflake_data_exchange_agent-0.0.19.tar.gz",
    "platform": null,
    "description": "# Snowflake Data Exchange Agent\n\n[![License Apache-2.0](https://img.shields.io/:license-Apache%202-brightgreen.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt)\n[![Python](https://img.shields.io/badge/python-3.10--3.12-blue)](https://www.python.org/downloads/)\n\nA REST API service for database migrations and data validation. Supports multiple databases including Snowflake, PostgreSQL, and SQL Server with queue-based task processing.\n\n## Quick Start\n\n```bash\n# Install\npip install snowflake-data-exchange-agent\n\n# Run\ndata-exchange-agent --port 8080\n\n# Test\ncurl http://localhost:8080/health\n```\n\n## Installation\n\n### From PyPI (Production)\n```bash\npip install snowflake-data-exchange-agent\n```\n\n### Requirements & Dependencies\n\n**Python Version**: 3.10, 3.11, or 3.12 (3.13 not yet supported)\n\n**Available dependency groups**:\n- `development`: Testing and development tools (pytest, ruff, etc.)\n- `all`: Includes all development dependencies\n\n**Core dependencies include**:\n- Snowflake Connector for Python\n- PySpark for data processing\n- Flask + Waitress for REST API\n- PostgreSQL support (psycopg2-binary)\n- AWS SDK (boto3)\n\n## Configuration\n\nCreate `src/data_exchange_agent/configuration.toml`:\n\n```toml\n# API settings\n[api_configuration]\nkey = \"your-api-key\"\nhost = \"0.0.0.0\"\nport = 5001\nworkers = 4\n\n# Database connections\n[connection.postgresql]\ndriver_name = \"postgresql\"\nusername = \"user\"\npassword = \"password\"\nhost = \"localhost\"\nport = 5432\ndatabase = \"mydb\"\n\n# Task queue\n[task_queue]\ntype = \"sqlite\"\ndatabase_path = \"~/.data_exchange_agent/tasks.db\"\n```\n\nFor Snowflake, create `~/.snowflake/config.toml`:\n\n```toml\n[connections.default]\naccount = \"your_account.region\"\nuser = \"your_username\"\npassword = \"your_password\"\nwarehouse = \"COMPUTE_WH\"\ndatabase = \"PRODUCTION_DB\"\n```\n\n## API Usage\n\n### Command Line\n```bash\n# Basic usage\ndata-exchange-agent\n\n# Production settings\ndata-exchange-agent --workers 8 --port 8080\n\n# Debug mode\ndata-exchange-agent --debug --port 5001\n```\n\n### Health Check\n```http\nGET /health\n```\n```json\n{\n  \"status\": \"healthy\",\n  \"version\": \"0.0.18\",\n  \"database_connections\": {\n    \"snowflake\": \"connected\"\n  }\n}\n```\n\n### Task Management\n```http\n# Start processing\nGET /handle_tasks\n\n# Stop processing\nGET /stop\n\n# Get status\nGET /get_handling_tasks_status\n\n# Task count\nGET /get_tasks_count\n```\n\n### Add Task\n```http\nPOST /tasks\nContent-Type: application/json\n```\n```json\n{\n  \"task_type\": \"data_extraction\",\n  \"source_config\": {\n    \"database\": \"postgresql\",\n    \"query\": \"SELECT * FROM users\"\n  },\n  \"destination_config\": {\n    \"type\": \"snowflake_stage\",\n    \"stage\": \"@data_stage/users/\"\n  }\n}\n```\n\n## Development\n\n### Setup\n```bash\ngit clone https://github.com/snowflakedb/migrations-data-validation.git\ncd migrations-data-validation/data-exchange-agent\npip install -e .[development]\n```\n\n### Testing\n```bash\n# Run all tests\npytest\n\n# With coverage\npytest --cov=src/data_exchange_agent\n\n# Run specific test types\npytest tests/unit/           # Unit tests only\npytest -m \"not integration\" # Non-integration tests\n```\n\n### Code Quality\n```bash\n# Format code\nruff format .\n\n# Lint code\nruff check .\n\n# Auto-fix linting issues\nruff check --fix .\n```\n\n## \ud83e\udd1d Contributing\n\nWe welcome contributions! See our [Contributing Guide](../CONTRIBUTING.md) for details on how to collaborate, set up your development environment, and submit PRs.\n\n---\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the Apache License 2.0. See the [LICENSE](../LICENSE) file for details.\n\n## \ud83c\udd98 Support\n\n- **Documentation**: [Full documentation](https://github.com/snowflakedb/migrations-data-validation)\n- **Issues**: [GitHub Issues](https://github.com/snowflakedb/migrations-data-validation/issues)\n\n---\n\n**Developed with \u2744\ufe0f by Snowflake**\n",
    "bugtrack_url": null,
    "license": "Apache License, Version 2.0",
    "summary": "Data exchange agent for migrations and validation",
    "version": "0.0.19",
    "project_urls": {
        "Bug Tracker": "https://github.com/snowflakedb/migrations-data-validation/issues",
        "Source code": "https://github.com/snowflakedb/migrations-data-validation/",
        "homepage": "https://www.snowflake.com/"
    },
    "split_keywords": [
        "snowflake",
        " analytics",
        " cloud",
        " data",
        " data-analysis",
        " data-analytics",
        " data-engineering",
        " data-management",
        " data-processing",
        " data-science",
        " data-visualization",
        " data-warehouse",
        " database"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ddc38a3425b4d661fae81375a214db3eceab5a8adca19119dd236300f3bf6fb5",
                "md5": "0a2903bab52613b4697b4c3eb1d5ebf0",
                "sha256": "dae3f6e92cbfdbeb2418587082b11ca6bbc76fcbcdc4b4045f96637c6faccb7d"
            },
            "downloads": -1,
            "filename": "snowflake_data_exchange_agent-0.0.19-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "0a2903bab52613b4697b4c3eb1d5ebf0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.10",
            "size": 55380,
            "upload_time": "2025-10-14T21:36:28",
            "upload_time_iso_8601": "2025-10-14T21:36:28.974527Z",
            "url": "https://files.pythonhosted.org/packages/dd/c3/8a3425b4d661fae81375a214db3eceab5a8adca19119dd236300f3bf6fb5/snowflake_data_exchange_agent-0.0.19-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "71bd42d8bd995eeecb5f73b2ed4f3c48e2e831167169b1476cc87ba155d7a320",
                "md5": "7e9a5fbfd299883bca6445c3c58d2520",
                "sha256": "2419baa37f64e3af3e0738bfb70a800be7ce6f1ce80c9aa77e303314f574b1c4"
            },
            "downloads": -1,
            "filename": "snowflake_data_exchange_agent-0.0.19.tar.gz",
            "has_sig": false,
            "md5_digest": "7e9a5fbfd299883bca6445c3c58d2520",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.10",
            "size": 83863,
            "upload_time": "2025-10-14T21:36:30",
            "upload_time_iso_8601": "2025-10-14T21:36:30.113738Z",
            "url": "https://files.pythonhosted.org/packages/71/bd/42d8bd995eeecb5f73b2ed4f3c48e2e831167169b1476cc87ba155d7a320/snowflake_data_exchange_agent-0.0.19.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-14 21:36:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "snowflakedb",
    "github_project": "migrations-data-validation",
    "github_not_found": true,
    "lcname": "snowflake-data-exchange-agent"
}
        
Elapsed time: 2.86869s