32位SSDT连接Snowflake遇DSN架构不匹配问题求助
Hey there, let's tackle this issue step by step. First, to answer your direct question: You can absolutely use a 32-bit ODBC DSN to create a linked server—your working SQL Server linked server proves that. The problem here lies in how your SSAS model processes data: even though you're using 32-bit SSDT, the SSAS data processing engine might be running in a 64-bit context, causing the architecture mismatch with your 32-bit driver.
Why the Linked Server Works but SSAS Doesn't
Your SQL Server linked server works because you likely configured it to play nice with the 32-bit driver (e.g., enabling the "Allow inprocess" setting for the driver if you're on 64-bit SQL Server). However, SSAS—even when launched from 32-bit SSDT—defaults to using a 64-bit processing engine by default. This 64-bit engine can't communicate with a 32-bit ODBC driver, hence the error you're seeing.
Solutions to Fix the Mismatch
Option 1: Force SSAS to Use 32-bit Runtime for Processing
If you want to stick with your existing 32-bit ODBC DSN, you can tell SSAS to run its processing engine in 32-bit mode to match the driver:
- In SSDT, right-click your SSAS project in the Solution Explorer and select Properties.
- Navigate to the Debug tab.
- Check the box for Use 32-bit runtime—this ensures the SSAS processing engine runs in 32-bit mode, aligning with your ODBC driver.
- Save the project settings, then try processing your SSAS model again.
Option 2: Switch to a 64-bit ODBC DSN (Recommended for Long-Term)
Since most production SSAS deployments are 64-bit, using a 64-bit driver/DSN will avoid future architecture headaches. Here's how to set it up:
- Open the 64-bit ODBC Data Source Manager (find it in Control Panel → Administrative Tools, or run
odbcad32.exefromC:\Windows\System32). - Create a new System DSN with the exact same connection settings as your 32-bit DSN, using the 64-bit Snowflake ODBC driver.
- Back in SSDT, update your SSAS model's data source to point to this new 64-bit DSN.
- Process the model—this should eliminate the architecture mismatch error.
Quick Check for Linked Servers
Just to confirm: If you're running 64-bit SQL Server, using a 32-bit ODBC driver for linked servers requires enabling the "Allow inprocess" option in the linked server's provider settings. You already got this working, so that part is solid!
内容的提问来源于stack exchange,提问作者Gavin Wilson

