Forum Discussion
Refresh Power BI report from Snowflake dynamic tables with DirectQuery mode
I need to create Power BI report from Snowflake dynamic tables and publish it to Power BI Service website. The Snowflake server is cga19429.us-west-2.privatelink.snowflakecomputing.com and it is connected via key authentication in my Power BI Desktop. Since I would like to refresh report automatically, the report is created in DirectQuery mode and published to Service website. The report can't show correctly and there is "Failed to test the connection to your data source. Please retry your credentials." in model's "Data source credentials" field. When I tried "Edit credentials" with host/warehouse/db/role/service_account/key_file, I got "no such host" error. What's wrong and how to address it?
Thanks in advance.
The "no such host" error is the giveaway. Privatelink hostnames like *.privatelink.snowflakecomputing.com only resolve inside the private network where Snowflake Private Link DNS is configured, and Power BI Service has no route into that network, so it cannot reach the endpoint no matter what credentials you provide.
You need a data gateway in between. Install an On-premises data gateway on a machine that can resolve the privatelink host (a VM in your VPC, a peered Azure VNet, or behind your corporate VPN with the correct private DNS), or use a VNet data gateway deployed into the same Azure VNet that holds the Snowflake Private Link endpoint and DNS zone. Then in the published dataset, bind it to that gateway and re-enter the Snowflake credentials, pointing the key file to a path that exists on the gateway machine.
Once the gateway can resolve the host, the credential test passes and DirectQuery and scheduled refresh both work.
If this solved your issue, please mark it as the accepted solution and give it a kudos.
Best,
Shai Karmani
1 Reply
- Shai_KarmaniSuper User
The "no such host" error is the giveaway. Privatelink hostnames like *.privatelink.snowflakecomputing.com only resolve inside the private network where Snowflake Private Link DNS is configured, and Power BI Service has no route into that network, so it cannot reach the endpoint no matter what credentials you provide.
You need a data gateway in between. Install an On-premises data gateway on a machine that can resolve the privatelink host (a VM in your VPC, a peered Azure VNet, or behind your corporate VPN with the correct private DNS), or use a VNet data gateway deployed into the same Azure VNet that holds the Snowflake Private Link endpoint and DNS zone. Then in the published dataset, bind it to that gateway and re-enter the Snowflake credentials, pointing the key file to a path that exists on the gateway machine.
Once the gateway can resolve the host, the credential test passes and DirectQuery and scheduled refresh both work.
If this solved your issue, please mark it as the accepted solution and give it a kudos.
Best,
Shai Karmani