Страница 1 из 2

Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 12:29 am
Inostranka_02
Скорее всего вопрос не по теме раздела, но попробую:
Дали пофиксить Power BI отчет - в нем несколько таблиц с OData кодом.
Одна таблица 90MB, имеет 30 штук OData feeds.
И она все время failed refresh.

Выдается сообщение:
"OLE DB or ODBC error: [DataSource.Error] OData: Unable to read data from the transport connection:
An existing connection was forcibly closed by the remote host.."

To есть, после где-то 10 мин медленного Refresh, происходит "... existing connection was forcibly closed by the remote host ..."
После разнообразных попыток изменения кода, изучения его (я ОData не знаю, дали быстро разобраться и сделать хоть что-то;
и - как бы учиться на ходу) - попыталась добавить фильтр по дате - [Текушая Дата] - 24 мес, ситуация особо не изменилась.

В итоге - я временно отключила 18 OData feeds - и, когда размер таблицы понизился до 42MB, она теперь грузится.
Можно отчет публиковать и делать scheduled refresh - работает !!!

Но - всякие VP хотят все 30 работающих проектов - то есть чтобы были в идеале все 30 OData feeds - и побыстрее -))

Не знаю, что можно сделать, чтобы она со всеми проектами работала ...
Знающие люди посоветовали добавить parameters в data source - чтобы таблица грузилась как бы частями, а не целиком сразу
Но как именно так сделать, они не знают (забыли и тд).


Вобщем, если кто-то что-то может посоветовать - пишите!

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 12:34 am
Inostranka_02
ПС -
Есть долгосрочный вариант -
- Создать Fabric Dataflow, куда зафигачить все 30 API calls
- Дальше - как-то разобраться с етим кодом и привести новую загруженную таблицу в вид такои же как теперешняя
(с теми же полями). Не уверена как точно так сделать - в Ms Fabric там язык PySpark, а у меня тут OData
Но мб получится после днеи возни.
- Переустановить связи в Модели Данных - добавив ету новую таблицу (она Fact - главная)
Ну и пере-создать measures сучествуюшие в старои версии отчета
- Оттестировать

Но ето как самое последнее средство уже
Не охота возиться с чужим отчетом так сложно и долго!

Хорошо бы что-то побыстрее, что может уменьшить размер ее / ускорить время Refresh...

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 4:12 am
Mad Hatter
То есть в причине почему не работает внешний источник данных вы так и не разобрались....

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 5:23 am
self
Inostranka_02 писал(а): Сб апр 13, 2024 12:29 am
"OLE DB or ODBC error: [DataSource.Error] OData: Unable to read data from the transport connection:
An existing connection was forcibly closed by the remote host.."
Sounds like a firewall issue

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 11:09 am
elpresidente*
OData это протокол (REST API), проблема скорее всего в том что ваш конкретный запрос timeout или еще что-то в этом духе.
Надо смотреть логи на сервере, выяснить что именно происходит, в идеале посмотреть какое именно запросы падают и почему.
Возможно надо добавить индексы где-то.
Попробуйте добавить к запросу pagination и вытаскивать данные постранично.

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 11:15 am
assassello
В предмете не рублю, но размеры какие-то удивительные. 90MB - это же вообще ни о чем.

Попробуйте экспериментально найти сколько фидов максимум еще работают. Потом добавить еще один и увеличьте ConnectionTimeout для odbc connection.

Если у вас сложный запрос со всякими кроосс-джойнами - попробуйте его упростить, оптимизировать.

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 11:16 am
Mad Hatter
Как бывает с продукцией M$… сообщение об ошибке может совершенно не информативным:

https://community.fabric.microsoft.com/ ... -p/2528045

Поэтому я люблю Питон, там хоть понятно в чем причина если не работает 😎

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 1:02 pm
Inostranka_02
self писал(а): Сб апр 13, 2024 5:23 am
Inostranka_02 писал(а): Сб апр 13, 2024 12:29 am
"OLE DB or ODBC error: [DataSource.Error] OData: Unable to read data from the transport connection:
An existing connection was forcibly closed by the remote host.."
Sounds like a firewall issue
И что нужно делать? КудЫ бежать с этим?

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 1:20 pm
Inostranka_02
elpresidente* писал(а): Сб апр 13, 2024 11:09 am OData это протокол (REST API), проблема скорее всего в том что ваш конкретный запрос timeout или еще что-то в этом духе.
Надо смотреть логи на сервере, выяснить что именно происходит, в идеале посмотреть какое именно запросы падают и почему.
Возможно надо добавить индексы где-то.
Попробуйте добавить к запросу pagination и вытаскивать данные постранично.
На всякий случай, напишу чуть подробнее что у меня -
Вот мои дата source - Катринка 1

И то, что внутри - Картинка 2, 3
Т.е там 30 OData Feeds (я убрала большинство, тк не влезает в скриншот)

Я пробовала менять код, но если хоть что-то меняю (добавляю параметры например) - тогда Refresh не возможен и выходит следуюшее сообшение
"This dataset includes a dynamic data source. Since dynamic data sources aren't refreshed in the Power BI service, this dataset won't be refreshed. Learn more: https://aka.ms/dynamic-data-sources.
Please try again later or contact support. If you contact support, please provide these details."

Если идти по ссылке, то обьясняют тем что не понимает не прямых обрашений, как я поняла.
Так что я не уверена что pagination поможет (в смысле, если что-то изменить в коде)

Если я что-то не так тут написала - не судите строго - dealing with this 2nd time in my life, after 4 months break.
Я даже не знаю как именно добавить pagination

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 1:29 pm
Inostranka_02
assassello писал(а): Сб апр 13, 2024 11:15 am В предмете не рублю, но размеры какие-то удивительные. 90MB - это же вообще ни о чем.

Попробуйте экспериментально найти сколько фидов максимум еще работают. Потом добавить еще один и увеличьте ConnectionTimeout для odbc connection.

Если у вас сложный запрос со всякими кроосс-джойнами - попробуйте его упростить, оптимизировать.
Если в SQL то да ни о чем...
А тут я ниже привела data source и фиды ети напрямую из API...если я правильно сказала...? и идут в PowerBI

Другие разработчики писали мне что были такие же issues, побеждались они Ms Fabric Data Flow и pipelines - то что я писала во 2м своем посте :( ...

<... Если у вас сложный запрос со всякими кроосс-джойнами - попробуйте его упростить, оптимизировать. ...>
Увы, я не вижу никаких там JOIN - вижу только OData feeds - 30 штук, и еше какои то код см картинку выше


<Попробуйте экспериментально найти сколько фидов максимум еще работают. Потом добавить еще один и увеличьте ConnectionTimeout для odbc connection.>
Не работали 2 фида из 30 - было на них сообшение "Time out".
Но, после их отключения, все равно весь отчет точно так же медленно refresh - 10 min, часто time out (не всегда)
И самое главное - когда его Publish и Schedule Refresh то тоже валится с сообшением -
"There was an error when processing the data in the dataset.
Please try again later or contact support. If you contact support, please provide these details."

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 1:37 pm
Inostranka_02
Вот что PBI Community Forum предлагает -
https://learn.microsoft.com/en-us/power ... odata-feed

Добавить в фид параметер какои-то (то что мне наш DBA предлагал но забыл как)
Попробую вечером

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 2:18 pm
self
Mad Hatter писал(а): Сб апр 13, 2024 11:16 am Как бывает с продукцией M$… сообщение об ошибке может совершенно не информативным:

https://community.fabric.microsoft.com/ ... -p/2528045

Поэтому я люблю Питон, там хоть понятно в чем причина если не работает 😎
Приведенное сообщение - from TCP/IP stack. В Питоне оно будет точно таким же.

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 2:21 pm
self
Если у вас нормально работает без 18 фидов, то добавляйте по одному, пока не получите ошибку.
Попробуйте вызвать сбойный фид отдельно.
Если получите такую же ошибку - обращайтесь в ваш IT/network support

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 4:51 pm
Mad Hatter
self писал(а): Сб апр 13, 2024 2:18 pm
Mad Hatter писал(а): Сб апр 13, 2024 11:16 am Как бывает с продукцией M$… сообщение об ошибке может совершенно не информативным:

https://community.fabric.microsoft.com/ ... -p/2528045

Поэтому я люблю Питон, там хоть понятно в чем причина если не работает 😎
Приведенное сообщение - from TCP/IP stack. В Питоне оно будет точно таким же.
А почитать ссылочку слабо? Там народ пишет, что проблема совсем в другом. А сообщение типа об отрыве соединения.

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 4:51 pm
Mad Hatter
self писал(а): Сб апр 13, 2024 2:21 pm Если у вас нормально работает без 18 фидов, то добавляйте по одному, пока не получите ошибку.
Попробуйте вызвать сбойный фид отдельно.
Если получите такую же ошибку - обращайтесь в ваш IT/network support
Или в Спортлото.

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 5:05 pm
self
Mad Hatter писал(а): Сб апр 13, 2024 4:51 pm
self писал(а): Сб апр 13, 2024 2:18 pm

Приведенное сообщение - from TCP/IP stack. В Питоне оно будет точно таким же.
А почитать ссылочку слабо? Там народ пишет, что проблема совсем в другом. А сообщение типа об отрыве соединения.
У народа очевидно есть хрустальный шарик. А я смотрю на сообщение, и именно таких сообщений я в свой практике видел немало. И все они почему-то были связаны с тем, что на корпоративных файроволах надо было что-то за вайтлистить/открыть порты для указанных хостов и т.д. и т.п.
Таймауты в выполнении запросов (по любым причинам) как правило разрыву соединений не приводят. И уж точно, соединения с Ажуром так себя не ведут. И с MS SQL сервером тоже.

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 5:11 pm
self
Я бы начал с этой таблицы

https://learn.microsoft.com/en-us/azure ... tabs=IP-V4

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 6:47 pm
Mad Hatter
self писал(а): Сб апр 13, 2024 5:05 pm
Mad Hatter писал(а): Сб апр 13, 2024 4:51 pm
А почитать ссылочку слабо? Там народ пишет, что проблема совсем в другом. А сообщение типа об отрыве соединения.
У народа очевидно есть хрустальный шарик. А я смотрю на сообщение, и именно таких сообщений я в свой практике видел немало. И все они почему-то были связаны с тем, что на корпоративных файроволах надо было что-то за вайтлистить/открыть порты для указанных хостов и т.д. и т.п.
Таймауты в выполнении запросов (по любым причинам) как правило разрыву соединений не приводят. И уж точно, соединения с Ажуром так себя не ведут. И с MS SQL сервером тоже.
Киса, скажите как художник художнику, вы рисовать программировать умеете?

Если да, то вы должны знать, что ошибка и сообщение об ошибке могут быть совершенно разными. К примеру не так давно пришлось дебажить питоновский код, который вытаскивал данные из облачного Splunk и в какой-то момент стал падать с совершенно невразумительным сообщением (exception). Причём у разных людей по разному. У кого-то вообще не падал, у кого-то падал, но редко, а у меня падал 50/50. На первый взгляд была проблема с авторизацией прокси, а выяснилось, что совсем совсем другая.

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 8:45 pm
self
Mad Hatter писал(а): Сб апр 13, 2024 6:47 pm
self писал(а): Сб апр 13, 2024 5:05 pm

У народа очевидно есть хрустальный шарик. А я смотрю на сообщение, и именно таких сообщений я в свой практике видел немало. И все они почему-то были связаны с тем, что на корпоративных файроволах надо было что-то за вайтлистить/открыть порты для указанных хостов и т.д. и т.п.
Таймауты в выполнении запросов (по любым причинам) как правило разрыву соединений не приводят. И уж точно, соединения с Ажуром так себя не ведут. И с MS SQL сервером тоже.
Киса, скажите как художник художнику, вы рисовать программировать умеете?

Если да, то вы должны знать, что ошибка и сообщение об ошибке могут быть совершенно разными. К примеру не так давно пришлось дебажить питоновский код, который вытаскивал данные из облачного Splunk и в какой-то момент стал падать с совершенно невразумительным сообщением (exception). Причём у разных людей по разному. У кого-то вообще не падал, у кого-то падал, но редко, а у меня падал 50/50. На первый взгляд была проблема с авторизацией прокси, а выяснилось, что совсем совсем другая.
бла-бла-бла
Разберитесь сначала чем network/transport layer отличается от application layer, потом будете втирать мне как вы написали hello world на питоне.
"existing connection was forcibly closed by the remote host" - это стандартное сообщение Windows sockets. Сообщение транспортного уровня, которое говорит, что не удалось установить TCP/IP соединение.

Re: Таблица с OData кодом failed refresh

Добавлено: Сб апр 13, 2024 9:01 pm
alex_127
self писал(а): Сб апр 13, 2024 8:45 pm
Mad Hatter писал(а): Сб апр 13, 2024 6:47 pm
Киса, скажите как художник художнику, вы рисовать программировать умеете?

Если да, то вы должны знать, что ошибка и сообщение об ошибке могут быть совершенно разными. К примеру не так давно пришлось дебажить питоновский код, который вытаскивал данные из облачного Splunk и в какой-то момент стал падать с совершенно невразумительным сообщением (exception). Причём у разных людей по разному. У кого-то вообще не падал, у кого-то падал, но редко, а у меня падал 50/50. На первый взгляд была проблема с авторизацией прокси, а выяснилось, что совсем совсем другая.
бла-бла-бла
Разберитесь сначала чем network/transport layer отличается от application layer, потом будете втирать мне как вы написали hello world на питоне.
"existing connection was forcibly closed by the remote host" - это стандартное сообщение Windows sockets. Сообщение транспортного уровня, которое говорит, что не удалось установить TCP/IP соединение.
Обычно таки что существующее соединение было разорвано - как это детали (r с другой стороны, etc)
В таких случаях вы нам не про размер говорите а про время через сколько ошибка вылазит - таймауты там всякие они круглые цифры и буквы