Forum Discussion
Pushing data to PowerBI Streaming dataset API fails when historic data analysis is ON
- 9 years ago
What is the JSON format in your case?
In my test, before enabling "HISTORIC" I can upload data with{ "DATETM" :"2017-03-02T09:04:48.837Z", "SALES" :5000000 }However after enabling "HISTORIC", I got a 400 error though the upload data would finally get saved as in your case. The reponse contains the the error saying something wrong with the dataset JSON. In case you have interest, the tool is POSTMAN.
Based on my test, with a dataset JSON format as below could always work either the "HISTORIC" is enabled or disabled.
[ { "DATETM" :"2017-03-02T10:04:48.837Z", "SALES" :45000000 } ]You can actually send multiple data in JSON array.
[ { "DATETM" :"2017-03-02T10:04:48.837Z", "SALES" :45000000 }, { "DATETM" :"2017-03-01T09:04:48.837Z", "SALES" :38000000 } ]
Hi Prefsmaster,
I'm not clear how did you push the data to power bi streaming api, perhaps you can try to use below sample application to push data:
Reference articles:
Real-time streaming in Power BI
In addition, if above are not help, can you please share some detail content of your issue?
Regards,
Xiaoxin Sheng
Hi, I am using the endpoint copied from the PowerBI UI:
And I wrote a small Command Line Tool to Send JSON to that endpoint (URL is stored in 'realTimePushURL'):
Debug.WriteLine($"Making POST request with data: {jsonString}");
var bodyData = Encoding.UTF8.GetBytes(jsonString);
WebRequest request = WebRequest.Create(realTimePushURL);
request.Method = "POST";
request.ContentLength = bodyData.Length;
var dataStream = request.GetRequestStream();
dataStream.Write(bodyData, 0, bodyData.Length);
dataStream.Close();
WebResponse response = request.GetResponse();I can send you the full source code of my small tool, but I think this won't help much:
The fact is that sending data to the streaming API with it works fine, as long as I don't turn on 'Historic data analysis' in PBI:
Ferenc
- Anonymous9 years agoNot applicable
Hi Prefsmaster,
I try to turn off the 'Historic' and the tile still works well. Perhaps you can try to test with the above sample.
Regards,
Xiaoxin Sheng
- Prefsmaster9 years agoRegular Visitor
Yes I know.
In my original question I mentioned that it all works fine with Historic data OFF.
It stops when I turn it ON.
I will also try sending data using a bearer token, and send you the results.
If that solves the problem, the documentation in that reference article (Real-time streaming in Power BI) should be edited, because it seems to suggest that you can send data to such an API without AAD auth.
- Prefsmaster9 years agoRegular Visitor
Anonymous
Just found this in Github: https://github.com/Microsoft/PowerBI-CSharp/commit/8d6bd1b993a6b0d31a8d8d00e2f2e7852c9aef02
So the time format must be a string to support Historic data?
I made that change, but then te timestamp can't be used in the line-graph for streaming data, so that visual stops working.
Card and Gauge keep working because those don't use the timestamp.
When I enable Historic Data analysis I still get the "The remote server returned an error: (400) Bad Request." errors,
So the change to Text doesn't seem to help.
And I noticed something else: Data is still received by PowerBI, even though an HTTP error is returned!
So why the error is thrown I have no idea.
Next I added an extra field to the API, a timestamp in DateTime format. now I have both a string and a DateTime version of the timestamp.
By using the DateTime field as Axis in the line graph, that came back to life.
But I still see no historic data.
I will now start working on the AAD approach.
In the mean time, perhaps you have any Ideas?
Maybe you can pass my findings on to a developer?