Answering your first question, Event Hubs are what ingest data into the Azure cloud. Now, lets talk about the gateway you're using as depending on whether your gateway can do a RESTful call to the Event Hubs right at the point of entrance, then the data will reach the Event Hubs and will get stored temporarily for whatever period os retention has been specified. These data are then handed over to the stream analytics of Azure IoT Hub where it is analyzed and processed to serve as the various outputs that any user could demand. Now, you could use one of these outputs and direct it to a Power BI dashboard so that it stays connected to the Power BI automatically for all further operations. You can authorize the Power BI dashboard with any organizational account, the lack of which will need you to register your domain with the Azure Active Directory. And since, the JSON format itself is a description of the data table schema used by Power BI, it will follow the same order of going through the Event Hubs to the Stream Analytics to Power BI or in the same manner as the first JSON package gets circulated in. This essentially is the schema that gets fixed by your first package which the rest of your data getting streamed will also follow. The order and format will remain same throughout. And, if you're looking to change the schema later, you could do it with the Power BI REST API. Refer to the following links for alteration of the schema:
I hope I covered all that you asked!