Странное поведение между Power BI и Snowflake

#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) начали вести себя так, как ожидалось, без ошибок.