#powerbi #snowflake-cloud-data-platform
Вопрос:
Мы видим странную ошибку при подключении Power BI к Snowflake. Эта ошибка появляется, когда мы пытаемся добавить таблицу в схему, содержащую символ подчеркивания (_) в имени.
Например: «LAB_PRJ_S4_GTS».»DATA_API».»CUSTOMS_CLASSIFICATION_API»
Мы получаем ошибку «Источник данных.Ошибка: таблица не имеет видимых столбцов и не может быть запрошена.». После расследования выясняется, что инструкция, отправленная Snowflake, является:
show /* ODBC:ColumnMetadataSource */ columns in table "LAB_PRJ_S4_GTS"."DATA_API"."CUSTOMS_CLASSIFICATION_API"
Как вы можете видеть, вместо DATA_API
этого на нем написано DATA_API
. Похоже, драйвер ODBC рассматривает _ как специальный символ, а затем пытается избежать его.
В истории запросов Snowflake мы получаем эту ошибку: SQL compilation error: Schema 'LAB_PRJ_S4_GTS."DATA_API"' does not exist or not authorized.
Некоторая дополнительная информация:
- Мы используем последнюю версию Power BI Desktop (версия от 21 августа)
- Мы используем последнюю версию драйвера Snowflake ODBC (не уверен, используется ли он Power BI или нет).
- Мы используем разъем Power BI Snowflake
Но почему у Снежинки с этим проблемы ?
Большое спасибо за вашу помощь !!
Комментарии:
1. Вы используете ODBC или разъем Power BI Snowflake? docs.microsoft.com/en-us/power-bi/connect-data/…
2. Это проблема на стороне клиента, поэтому либо Power BI, либо разъем. Я ожидал бы, что это будет распространенной проблемой, поэтому, пожалуйста, проверьте версии, которые вы используете, и протестируйте последнюю версию, чтобы проверить. Пожалуйста, поделитесь информацией о вашем соединителе, если это все еще произойдет.
3. Я не знаю, почему драйвер избегает подчеркивания, но я могу сказать вам, что у Snowflake есть проблемы с этим, потому что он использует имена объектов в двойных кавычках, чтобы разрешить специальные символы, поэтому он не использует в качестве экранирования в этой ситуации. Я хотел бы посмотреть, имеет ли последний разъем Snowflake для PowerBI такое же поведение.
4. Я скорректировал описание на основе ваших комментариев. Мы используем разъем Power BI Snowflake и последние версии как настольного компьютера Power BI, так и драйвера ODBC.
Ответ №1:
Я считаю, что это работает так, как ожидалось, потому что с такими соединителями, как JDBC и ODBC, подчеркивание должно использоваться с escape-символом «». Итак, попробуйте добавить схему следующим образом:
"LAB_PRJ_S4_GTS"."DATA_API"."CUSTOMS_CLASSIFICATION_API"
а потом посмотрим, хорошо ли это работает.
Комментарии:
1. Да, это действительно то, что я думаю, а также то, что отправляется Снежинке. Но escape-символ не освобождается драйвером ODBC до связи со Снежинкой. Инструкция, полученная в Snowflake, такова
show columns in table "LAB_PRJ_S4_GTS"."DATA_API"."CUSTOMS_CLASSIFICATION_API"
Ответ №2:
На случай, если кто-то столкнется с такой же ситуацией, вот решение. Мы обнаружили, что такое поведение было связано с параметром учетной ODBC_SCHEMA_CACHING
записи, для которого было установлено значение TRUE
.
Это разрешило ситуацию для нас: ALTER ACCOUNT SET ODBC_SCHEMA_CACHING=FALSE
После этого Power BI или Excel (через ODBC) начали вести себя так, как ожидалось, без ошибок.