PowerBI.com Service OData-download issue: "An existing connection was forcibly closed by the remote host."

Is de tekst aan te geven waar in het artikel staat dat het er niet voor geschikt is en de bijbehorende Microsoft bron? Voor zover te overzien is dit een mening van een non-Microsoft medewerker. Of is het mogelijk om de correspondentie met Microsoft te ontvangen?

Some of the M functions like PromoteHeaders will generate additional calls for this type of data source, so to avoid requesting each file more than once, you can buffer the file binary content into memory, for example if you are using Web.Contents, below changes can be tested:

  • Before: Source = Csv.Document(Web.Contents(“[https…csv”),[Delimiter=“,”]https:/.csv) , Columns=80, Encoding=1252, QuoteStyle=QuoteStyle.None]),
  • After Source = Csv.Document(Binary.Buffer(Web.Contents(“[https…csv”)),Delimiter=“,” , Columns=80, Encoding=1252, QuoteStyle=QuoteStyle.None]),

Another example when using Sharepoint folder connector:

  • Before: Source = SharePoint.Files(ParameterSource, [ApiVersion = 15]), #“Filtered Rows” = Table.SelectRows(Source, each ([Folder Path] = H_FolderPath)), Navigation1 = #“Filtered Rows”{0}[Content]
  • After: Source = SharePoint.Files(ParameterSource, [ApiVersion = 15]), #“Filtered Rows” = Table.SelectRows(Source, each ([Folder Path] = H_FolderPath)), Navigation1 = Binary.Buffer(#“Filtered Rows”{0}[Content])

You can also try to connect to Odata using web as connector in Power Bi Desktop.

Also please check if there is any firewall stopping from datasource end.

Dit is een deel van de communicatie, maar de oplossing is nog niet gevonden. En een reactie op de foutmelding evenmin. Kortom het contact met Microsoft wordt vervolgd.

M.b.t. het artikel https://www.biinsight.com/optimising-odata-refresh-performance-in-power-query-for-power-bi-and-excel/: het gaat ons er om om duidelijk te krijgen of Microsoft de verbindingsproblemen beschouwt als hetzij een bug hetzij “by design”.

Het is zeker dat er tenminste twee problemen in de huidige implementatie van de OData-feed op PowerBI.com zitten (op Power BI Desktop, Power Query en Azure Data Factory treden ze niet op). Het is ons tot op heden nog niet gelukt om met de juiste personen binnen Microsoft hierover in contact te komen.

Als een Microsoft-bron aangeeft dat er een grens is (welke grens dan ook), dan kan hierop ingespeeld worden. Anders zijn het bugs, hetgeen twee totaal verschillende processen met zich mee brengt.

Volledigheidshalve: de OData-implementatie van Invantive bevat de in het artikel genoemde uitdagingen niet. Het ontwerp is zo gemaakt dat ook tientallen gigabytes aan data conform OData-specificaties binnen enkele seconden uitgeleverd kunnen worden als zogenaamde “OData producer”. De zogenaamde “OData consumer” (Power BI Desktop, Power Query, Azure Data Factory en hier PowerBI.com) zou dit ook moeten kunnen verwerken.

Is het mogelijk om de bron van deze quote te weten? De tekst is niet via Google te vinden en heeft ook geen betrekking op de Invantive connector.

De bron van deze quote is van microsoft support.

Wat betreft OData. Ik kan niet beoordelen of de OData beperkingen gelden bij Invantive, maar zoals ik het lees is het wel een algemeen probleem. Bovendien hebben wij bij een andere applicatie die niet via Invantive wordt ontsloten precies dezelfde foutmelding ook met OData.

Daarom ben ik benieuwd of i.p.v. OData de connectie via web.content zou kunnen helpen.

Ja, grote vraag n.a.v. bovenstaande is inderdaad of het een “probleem” is of een “by design”. Als het een probleem is, dan kan in samenwerking met Microsoft aan bugfixes voor PowerBI.com gewerkt worden.

Als workaround zijn ook andere protocollen beschikbaar, maar die missen een aantal features.

Voor duidelijkheid: met web.content wordt bedoeld: Web.Contents - PowerQuery M | Microsoft Learn ?

Het gaat inderdaad om Web.Contents waar de link naar verwijst. Zojuist aan Microsoft gevraagd waarom zij aanbevelen om Web.Contents te gebruiken in plaats van OData.Feed.

Dank voor bevestiging. Deze mogelijkheid voor het gebruik van web.contents is standaard reeds aanwezig en wordt bijvoorbeeld gebruik door Qlik-gebruikers. Zie bijvoorbeeld Laad Exact Online in Qlik Sense en Tableau.

Op Qlik werkt dit goed in het JSON-formaat, ook met grote volumes, maar het is onbekend of de PowerBI Service ook grote volumes betrouwbaar kan verwerken.

Net zoals bij de OData-feed is er sprake van streaming data, maar de blokgrootte is minder fijnkorrelig.

Een eenvoudige oplossing is de OData-feed binnenhalen via web.contents. OData antwoorden zijn bij Invantive Bridge Online niet meer dan JSON-array met wat versierselen en dan is snel vast te stellen of enkele gigabytes zich via web.contents in jullie scenario zich wel betrouwbaar laten verwerken. De URL inclusief filters is snel terug te vinden via Bridge Online Monitoring.

Het gaat dan om de URL die te vinden is onder Pad in volgende scherm:

Is dan met bovenstaande URL het niet meer nodig om een JSON applicatie aan te maken zoals toegelicht in: Laad Exact Online in Qlik Sense en Tableau - invantive?

Of is de JSON applicatie technisch anders dan de URL?

Via de URL met JSON werkt de download goed, maar ik krijg nu een time out error bij circa 1 minuut en 40 sec (100ms). Moet dat apart worden ingesteld?

De OData-request kan ook gebruikt worden. Een maatwerk JSON-applicatie biedt meer mogelijkheden.

Gezien de consistente en vrij nauwkeurige time-out na 100 seconden, is dit de standaard waarde zoals beschreven op Web.Contents - PowerQuery M | Microsoft Learn. Advies is om de waarde serieus te verhogen in de Advanced Editor.

Klopt, ik heb inderdaad de timeout aangepast op web.contents. Interessant genoeg kan nu alle data [in OData-formaat] worden opgehaald zonder enige foutmelding in Power BI Desktop en Power BI Online/Service. Zelfs de geplande vernieuwing verloopt consequent zonder fouten. Het verversen duurt alleen circa 20-30 minuten.

We willen graag een mogelijkheid die we breder kunnen toepassen. Is dan de instructie van hierboven relevant of wat is de beste optie?

Fijn te horen dat dezelfde OData-feed wel via web.contents verwerkt kan worden, terwijl het via OData-feed een foutmelding optreedt. Dit onderbouwt dat er sprake is van een issue in de OData-verwerking van Power BI, maar is nog geen duurzame oplossing.

Het is lastig te beoordelen of een bredere toepassing van web.contents verstandig is. Het is “uncharted territory” zeg maar.

Is het mogelijk om de gebruikte code als alternatief voor OData hier te delen? Ik laat het een developer dan bekijken op te verwachten problemen en/of risico’s. Daarnaast is het prettig als het ticketnummer bij Microsoft vermeld kan worden; er loopt inmiddels een paralleltraject.

Helaas blijkt toch web.contents niet solide genoeg. Af en toe kan Power BI de dataset toch niet verversen. Ondanks de timeout dit op 15minuten staat.

Overigens heeft Microsoft nog niet gereageerd op mijn vragen over OData versus web.contents.

Dank voor update. Uit het niet kunnen verversen zich op dezelfde manier als met OData (dus 1 van de 2 scenario’s beschreven hierboven)?

Het is inderdaad dezelfde foutmelding, alleen lijkt het minder consistent te zijn.