一键导入
worker-local-setup
Install and start the Data Exchange Worker on a user-managed machine (laptop, cloud VM, or on-prem server).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Install and start the Data Exchange Worker on a user-managed machine (laptop, cloud VM, or on-prem server).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Identify SQL Server migration anti-patterns — performance blockers, architecture/security considerations, and behavioral differences — by running `scai assessment anti-patterns`, which buckets SnowConvert's already-recorded issue codes by priority and writes JSON for the parent assessment multi-report. Use for anti-patterns, performance/architecture concerns in SQL Server → Snowflake migrations;
Analyze SSIS packages from SnowConvert ETL.* outputs and source .dtsx files. Classifies packages, scores migration complexity, and produces JSON for the parent assessment multi-report.
Analyze Informatica Power Center workflows/mappings from SnowConvert ETL.* outputs and source XML files. Classifies workflows, scores migration complexity, and produces JSON for the parent assessment multi-report.
Analyzes workloads to be migrated to Snowflake using SnowConvert assessment reports. Routes to specialized sub-skills for high-quality assessments. Use this skill when user wants to do an assessment of their code or ETL workload, waves generation, object exclusion, anti-patterns, sql dynamic and/or ETL analysis (SSIS)
Set up a migration project — connect to source, initialize, extract objects, convert, and assess. Covers steps 1-5 of the migration lifecycle.
End-to-end database migration to Snowflake. Orchestrates the full migration lifecycle from source connection through initial conversion. Triggers: migrate, migration, migrate to snowflake, end to end migration, e2e migration, full migration.
| name | worker-local-setup |
| description | Install and start the Data Exchange Worker on a user-managed machine (laptop, cloud VM, or on-prem server). |
| parent_skill | data-infrastructure-setup |
| license | Proprietary. See License-Skills for complete terms |
Set up and run the Data Exchange Worker on whatever machine will execute it: a laptop, a cloud VM, an on-premises server, or one host per worker when scaling out. The steps are the same on each host.
Note: Ensure the host can reach both the source database and your Snowflake account (and meets any corporate firewall or proxy rules when applicable).
Prerequisites depend on the source dialect and the extraction strategy chosen in data migration setup. Load extraction-strategies-reference.md for the full matrix; complete the matching section below before Step 1.
regular (ODBC)The Data Exchange Worker connects to SQL Server via the Microsoft ODBC Driver. Before starting the worker, verify it is installed:
odbcinst -q -d 2>/dev/null | grep -i "ODBC Driver"
If the command returns a driver name (e.g. [ODBC Driver 18 for SQL Server]), the driver is present — continue to Step 1.
If the command returns nothing, the driver is missing. Stop here and ask the user to install it — do not attempt installation yourself, as it requires sudo and interactive steps that cannot be automated.
Tell the user:
The Data Exchange Worker requires the Microsoft ODBC Driver for SQL Server to connect to your source database. Please install it and then resume.
macOS — Homebrew (recommended):
brew tap microsoft/mssql-release https://github.com/Microsoft/homebrew-mssql-release brew update HOMEBREW_ACCEPT_EULA=Y brew install msodbcsql18The
brew tapstep may ask you to confirm adding a third-party repository — this is expected.macOS — without Homebrew: Download and install the
.pkgfrom the Microsoft ODBC Driver download page. Choose the macOS package matching your architecture (arm64for Apple Silicon,x86_64for Intel).After installing, verify with:
odbcinst -q -d | grep -i "ODBC Driver"Then resume the setup.
Once the user confirms the driver is installed, re-run the check and continue.
regular (COPY)No ODBC driver. The worker uses bundled Npgsql with use_copy = true. Skip the ODBC pre-flight above.
regular (ODP.NET)No SQL Server ODBC check. Ensure the worker can reach Oracle with the service name in TOML database (same as scai connection).
dbms_cloudConfigure dbms_cloud_credential_name and dbms_cloud_file_uri_prefix in [connections.source.oracle] after generate-config. Oracle must grant EXECUTE on DBMS_CLOUD and a credential for the HTTPS prefix. Set extraction.strategy: dbms_cloud and externalStage in workflow YAML. See extraction-strategies reference and dmvf/data-exchange-agent/docs/oracle-dbms-cloud-local-setup.md.
unloadAdd unload_s3_bucket and unload_iam_role_arn to [connections.source.redshift]. Set extraction.strategy: unload and externalStage in workflow YAML.
tptInstall Teradata TTU on the worker host (tbuild). Optional tpt_* fields in TOML. Workflow may use extraction.strategy: tpt.
write_nosConfigure write_nos_* fields in [connections.source.teradata]. Set extraction.strategy: write_nos and externalStage in workflow YAML.
Skip this step for Iceberg migration strategies that don't use a Worker (
catalog_link,convert_to_managed,copy_fileswithsourceDataStage).
If .scai/settings/DataExchangeWorkerConfig.toml already exists with no <PLACEHOLDER> tokens, report "Worker config already complete" and continue to Step 2.
Otherwise, run:
scai data worker generate-config .scai/settings/DataExchangeWorkerConfig.toml
This pre-fills [connections.source.<engine>] from the project's scai source connection (host, user, database, port, and engine-specific fields like SQL Server's trust_server_certificate and encrypt, or Teradata authentication = "LDAP" when --auth ldap). Pass --affinity <label> if your workflow uses one. The CLI will prompt before overwriting an existing file; pass -y to overwrite without prompting.
After running, handle the result:
[connections.source.*] host, port, user, database) and ask them to confirm. Only edit if something is wrong; do not re-prompt for fields that already have real values.<PLACEHOLDER> token. If the scai connection lacked a field (e.g., no port), ask the user for just that one field.The scai connection populates
[connections.source.*].database. This value must matchsource.databaseNamein the migration workflow YAML / validation JSON. A mismatch causes the orchestrator to report "table does not exist in the source database." If the user wants to migrate a different database than the one in their scai connection, update it here and use the same value in the workflow YAML.Oracle:
databasein the worker TOML is the Oracle service name (from--service-nameonscai connection add-oracle), not a SQL Server–style database name. Use the same service name in workflow YAMLsource.databaseName.Teradata:
databasein the worker TOML is the Teradata database name (from--databaseonscai connection add-teradata). Use the same value in workflow YAMLsource.databaseName. For LDAP connections, confirmauthentication = "LDAP"is present when the scai connection uses--auth ldap.PostgreSQL: The worker uses PostgreSQL's native COPY protocol (
use_copy = true) for all data extraction. Thedatabasefield is the actual PostgreSQL database name. No special driver is required — Npgsql is bundled with the worker.
See ../references/worker-config-reference.md for the field reference and advanced options (e.g., Redshift UNLOAD, Teradata TPT / WRITE_NOS).
Run:
scai data worker start --local .scai/settings/DataExchangeWorkerConfig.toml
This command installs the worker if it is not already present, then starts it using the configuration in .scai/settings/DataExchangeWorkerConfig.toml.
Tell the user:
Cost note: The local Data Exchange Worker polls Snowflake on an interval and can accrue warehouse credits even when no migration tasks are running. Stop the worker when data work for this wave is done (teardown skill), or when ending the session if it was started outside MCP.
The CLI prints worker status on startup. Confirm the output shows the worker has connected to the orchestrator and is polling for tasks.
If the worker fails to start, check:
odbcinst -q -d | grep -i "ODBC Driver") — if missing, follow the pre-flight instructions in the Prerequisites section above~/.snowflake/config.toml (or %USERPROFILE%\.snowflake\config.toml on Windows)The worker is running on the host. Return control to the parent skill, which runs Level 1 Data Doctor before proceeding.