{"id":3974,"date":"2018-06-15T23:03:05","date_gmt":"2018-06-15T23:03:05","guid":{"rendered":"https:\/\/zappysys.com\/blog\/?p=3974"},"modified":"2019-11-20T18:23:57","modified_gmt":"2019-11-20T18:23:57","slug":"read-amazon-s3-data-power-bi-aws-json-xml-api","status":"publish","type":"post","link":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/","title":{"rendered":"Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML)"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-3951 alignleft\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png\" alt=\"Power BI Integration\" width=\"131\" height=\"131\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png 310w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310-150x150.png 150w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310-300x300.png 300w\" sizes=\"(max-width: 131px) 100vw, 131px\" \/><\/a>If you are looking around to find connectivity options to get\u00a0Amazon AWS data in Power BI (e.g. Read from Amazon S3 files (CSV, JSON, XML) or get AWS API data such as Billing Data by calling REST API) then unfortunately as of now Power BI doesn&#8217;t support it natively.<\/p>\n<p>In this article, you will learn\u00a0\u00a0<strong>How to read Amazon S3 data in Power BI<\/strong>\u00a0(Using <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/amazon-s3-odbc-driver-csv-files\/\" target=\"_blank\" rel=\"noopener\">S3 CSV Driver<\/a>) and in later section we will also learn\u00a0<strong>How to import data from AWS API Calls (e.g. Billing, EC2, S3, DynamoDB)<\/strong>. We will use <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/\" target=\"_blank\" rel=\"noopener\">ZappySys REST \/ JSON Driver<\/a> to access AWS data without any ETL or Programming.<\/p>\n<p>In our previous article, we discussed how to <a href=\"https:\/\/zappysys.com\/blog\/howto-import-json-rest-api-power-bi\/\">access REST API data in Power BI (Read JSON \/ XML Web API)<\/a>. Now let&#8217;s learn <strong>how to connect to AWS in Power BI<\/strong>.<\/p>\n<p>In this article, We will explore interesting scenarios such as below. It will help you to connect\u00a0Amazon AWS in Power BI and import data from AWS <strong>without doing any ETL or programming<\/strong>.<\/p>\n<ul>\n<li>Import JSON file from S3 bucket in Power BI (Using <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/amazon-s3-odbc-driver-json-files\/\" target=\"_blank\" rel=\"noopener\">Amazon S3 Driver for JSON Files<\/a>).<\/li>\n<li>Read CSV file from S3 bucket in Power BI\u00a0(Using <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/amazon-s3-odbc-driver-csv-files\/\" target=\"_blank\" rel=\"noopener\">Amazon S3 Driver for CSV Files<\/a>).<\/li>\n<li>Read XML file from S3 bucket in Power BI\u00a0(Using <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/amazon-s3-odbc-driver-xml-files\/\" target=\"_blank\" rel=\"noopener\">Amazon S3 Driver for XML Files<\/a>).<\/li>\n<li>Call Amazon AWS REST\u00a0API (JSON or XML) and get data in Power BI. Some examples of API calls.\n<ul>\n<li>Get <strong>EC2 VM<\/strong> count and their Status in Power BI Dashboard<\/li>\n<li>Read data from <strong>AWS Athena<\/strong> Service<\/li>\n<li>Use <strong>AWS Cost \/ Billing API<\/strong> to display monthly Cost by Service<\/li>\n<li>Display summary of <strong>Redshift<\/strong> Clusters<\/li>\n<li>Extract response from <strong>Lambda<\/strong> function and display in Power BI<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>So let&#8217;s get started&#8230;<\/p>\n<h2><span id=\"Requirements\">Requirements<\/span><\/h2>\n<ol>\n<li>First, you will need to have\u00a0<a href=\"https:\/\/powerbi.microsoft.com\/en-us\/desktop\/\" target=\"_blank\" rel=\"noopener\">Power BI Desktop (FREE)<\/a>\u00a0installed<\/li>\n<li>Make sure you have <strong>AWS Access Key<\/strong> and <strong>Secret Key<\/strong> to access AWS data or call API for the desired service<\/li>\n<li>On third place, our\u00a0<a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/\">ZappySys ODBC Power Pack<\/a><\/li>\n<\/ol>\n<h2>Import Amazon S3 data in Power BI (CSV, JSON or XML Files)<\/h2>\n<p>In this section we will look at step by step approach to load Amazon S3 data in Power BI. Your file can be compressed\u00a0 (GZip, Zip) or un-compressed. We will use ZappySys <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/amazon-s3-odbc-driver-csv-files\/\" target=\"_blank\" rel=\"noopener\">Amazon S3 driver for CSV Files<\/a> for demo but you can also use <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/amazon-s3-odbc-driver-json-files\/\" target=\"_blank\" rel=\"noopener\">Amazon S3 JSON Driver<\/a> or <a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/amazon-s3-odbc-driver-xml-files\/\" target=\"_blank\" rel=\"noopener\">Amazon S3 Driver for XML Files<\/a>\u00a0same way for reading different file formats.<\/p>\n<h3><span id=\"Step-by-Step_Import_REST_API_into_Power_BI\">Configure ODBC DSN for Amazon S3 Files ( JSON \/ XML \/ CSV )<\/span><\/h3>\n<p>&nbsp;<\/p>\n<ol>\n<li>Type odbcad32.exe in your search box and launch the DSN Config utility.<img decoding=\"async\" class=\"figureimage\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/odbc-data-source-64-bits.png\" \/><\/li>\n<li>you want access for yourself then stay of User DSN Tab. If you want grant access other users then go to System DSN tab. For\u00a0<a href=\"https:\/\/zappysys.com\/onlinehelp\/odbc-powerpack\/scr\/odbc-integration-programming-tsql.htm\">SQL Server Integration<\/a>\u00a0go to System Tab and add new System DSN rather than User DSN. Click New button.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"ZappySys ODBC Driver - Open UI\" src=\"https:\/\/zappysys.com\/onlinehelp\/odbc-powerpack\/scr\/images\/zappysys-odbc-driver-open-ui.png\" alt=\"ZappySys ODBC Driver - Open UI\" \/><\/li>\n<li>From the Driver list Select ZappySys ODBC Driver. For this example select [<strong>ZappySys Amazon S3 CSV Driver<\/strong>].<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"ZappySys ODBC Driver - Create Amazon S3 CSV Driver\" src=\"https:\/\/zappysys.com\/onlinehelp\/odbc-powerpack\/scr\/images\/amazon-s3-csv-driver\/amazon-s3-csv-driver-create.png\" alt=\"ZappySys ODBC Driver - Create Amazon S3 CSV Driver\" \/><\/li>\n<li>Now, we need Amazon S3 Storage Connection. Lets create it.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"ODBC Amazon S3 Driver - Create Connection\" src=\"https:\/\/zappysys.com\/onlinehelp\/odbc-powerpack\/scr\/images\/amazon-s3-json-driver\/amazon-s3-json-driver-create-connection.png\" alt=\"ODBC Amazon S3 Driver - Create Connection\" \/><\/li>\n<li>Now, When you see DSN Config Editor with zappysys logo first thing you need to do is change default DSN Name at the top and Select your bucket and file from it.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"ODBC Amazon S3 Driver - Select File\" src=\"https:\/\/zappysys.com\/onlinehelp\/odbc-powerpack\/scr\/images\/amazon-s3-csv-driver\/amazon-s3-csv-driver-select-file.png\" alt=\"ODBC Amazon S3 Driver - Select File\" \/><\/li>\n<li>Here, in the Compression (Zip\/GZip) tab set suitable file format.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"ZappySys ODBC Driver - Configure Amazon S3 CSV Driver\" src=\"https:\/\/zappysys.com\/onlinehelp\/odbc-powerpack\/scr\/images\/amazon-s3-csv-driver\/amazon-s3-csv-driver-set-compression-file-format.png\" alt=\"ZappySys ODBC Driver - Configure Amazon CSV Driver\" \/><\/li>\n<li>Click on Preview Tab, Select Table from Tables Dropdown and select [value] and click Preview.<br \/>\n<img decoding=\"async\" class=\"figureimage\" title=\"ZappySys ODBC Driver - Preview Data\" src=\"https:\/\/zappysys.com\/onlinehelp\/odbc-powerpack\/scr\/images\/json-driver\/odbc-json-driver-preview-data.png\" alt=\"ZappySys ODBC Driver - Preview Data\" \/><\/li>\n<li>If you are using DSN method then Click OK to save our DSN Configuration.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3>Load Amazon S3 Data in Power BI &#8211; using ODBC Driver Connection<\/h3>\n<p>In the previous section, we configured ODBC DSN for AWS API call and added the ZappySys drivers in the ODBC Driver Administrator with information to connect to AWS S3 Files. We queried S3 File using ZappySys Amazon S3 Driver for CSV Files. Now we will open Power BI and import the information from ODBC\u00a0 DSN we defined earlier.<\/p>\n<ol>\n<li>Open Power BI Desktop and select the option <strong>Get data<\/strong>\n<div id=\"attachment_2830\" style=\"width: 802px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2830\" class=\"wp-image-2830 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop.png\" alt=\"Get data using power bi\" width=\"792\" height=\"335\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop.png 792w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop-300x127.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop-768x325.png 768w\" sizes=\"(max-width: 792px) 100vw, 792px\" \/><\/a><p id=\"caption-attachment-2830\" class=\"wp-caption-text\">Get data in power bi<\/p><\/div><\/li>\n<li>Get Data will allow adding the ZappySys ODBC driver. Go to <strong>Other<\/strong> and select <strong>ODBC.<\/strong>\n<div id=\"attachment_2835\" style=\"width: 617px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-odbc-other-data-source.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2835\" class=\"size-full wp-image-2835\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-odbc-other-data-source.png\" alt=\"select odbc using power bi\" width=\"607\" height=\"635\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-odbc-other-data-source.png 607w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-odbc-other-data-source-287x300.png 287w\" sizes=\"(max-width: 607px) 100vw, 607px\" \/><\/a><p id=\"caption-attachment-2835\" class=\"wp-caption-text\">Select odbc in Power BI<\/p><\/div><\/li>\n<li>Select ODBC DSN name from the DSN dropdown<\/li>\n<li>Now its time to import data. Basically, there are two modes to import data. <strong>Table Mode<\/strong> and <strong>Query Mode<\/strong>. We will\u00a0<strong>Import using Power BI Query Mode<\/strong><\/li>\n<li>Select your DSN and click <strong>Advanced Option<\/strong> to enter custom SQL Query to Import your REST API data. You can use ODBC DSN Data sources Preview tool to generate SQL Query. For example, you can enter a query like below. WITH clause is optional but you can supply many options to override DSN UI settings (e.g. Path, Credentials ).\n<pre class=\"lang:tsql decode:true\">\/*--------- Amazon S3 Driver - Read CSV File Example - Override UI credentials in WITH clause ----------*\/  \r\nSELECT * FROM $  \r\nWITH (  \r\n  Src='Northwind-Bucket\/Orders*.csv' --use wildcard * for pattern search\r\n  -- ,AccessKey='AKIAxxxx' --not needed if you set in DSN connection\r\n  -- ,SecretKey='a1wxxxxxxxxxxxxxx' --not needed if you set in DSN connection\r\n  -- ,RegionName='us-west-1'\r\n  -- ,ColumnDelimiter='|'\r\n  -- ,HasColumnHeaderRow='False'\r\n)<\/pre>\n<p><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-import-from-rest-api-url-odbc-json-driver.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-3861\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-import-from-rest-api-url-odbc-json-driver.png\" alt=\"Import JSON \/ REST API data in Power BI using SQL Query Mode\" width=\"518\" height=\"581\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-import-from-rest-api-url-odbc-json-driver.png 518w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-import-from-rest-api-url-odbc-json-driver-267x300.png 267w\" sizes=\"(max-width: 518px) 100vw, 518px\" \/><\/a><\/li>\n<li>On the next screen select <strong>Windows Authentication<\/strong> to continue (No userid and password).\n<div id=\"attachment_2853\" style=\"width: 710px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/select-credentials-zappysys.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2853\" class=\"size-full wp-image-2853\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/select-credentials-zappysys.png\" alt=\"Select credentials\" width=\"700\" height=\"346\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/select-credentials-zappysys.png 700w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/select-credentials-zappysys-300x148.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-2853\" class=\"wp-caption-text\">Select Windows Credentials to connect to zappysys driver<\/p><\/div><\/li>\n<li>Click OK to import data in Power BI<\/li>\n<li>Now you can create custom Dashboard from imported Dataset.<\/li>\n<\/ol>\n<h2>AWS API Example &#8211;\u00a0\u00a0<span id=\"Step-by-Step_Import_REST_API_into_Power_BI\">Call Amazon S3 API in Power BI<\/span><\/h2>\n<p>In our previous section we saw how to read Amazon S3 data using native ZappySys S3 Drivers (For CSV , JSON and XML Files), this approach is preferred way to read S3 Files for sure because it gives you UI to browse files, it gives you ability to read from multiple files and many more S3 specific features.<\/p>\n<p>However in some cases you have to call REST API in a manual way using REST API driver rather than S3 Driver. In next section we will see more interesting use case of calling AWS API (e.g. Billing \/ Cost API).<\/p>\n<p>Now lets look at steps &#8211; How to import Amazon S3 data Power BI by calling REST API manually. Steps listed below are almost identical for XML or JSON data format except for selecting Driver Type (i.e. JSON, XML, CSV).<\/p>\n<h3><span id=\"Step-by-Step_Import_REST_API_into_Power_BI\">Configure ODBC DSN for REST API ( JSON \/ XML \/ CSV )<\/span><\/h3>\n<p>To consume S3 data in Power BI, first\u00a0we have to create ODBC DSN using ZappySys Driver (XML or JSON). Perform the following steps.<\/p>\n<ol>\n<li>To do this, we will first open the ODBC Data Source (32 bit):\n<div id=\"attachment_2827\" style=\"width: 403px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/open-ODBC-Data-souce-administrator.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2827\" class=\"wp-image-2827 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/open-ODBC-Data-souce-administrator.png\" alt=\"Open odbc\" width=\"393\" height=\"531\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/open-ODBC-Data-souce-administrator.png 393w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/open-ODBC-Data-souce-administrator-222x300.png 222w\" sizes=\"(max-width: 393px) 100vw, 393px\" \/><\/a><p id=\"caption-attachment-2827\" class=\"wp-caption-text\">Open odbc data source<\/p><\/div><\/li>\n<li>Use the User DSN page and press<strong> Add<\/strong>\n<div id=\"attachment_2765\" style=\"width: 600px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/add-new-data-source-odbc-administrator.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2765\" class=\"wp-image-2765 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/add-new-data-source-odbc-administrator.png\" alt=\"New Data source\" width=\"590\" height=\"423\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/add-new-data-source-odbc-administrator.png 590w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/add-new-data-source-odbc-administrator-300x215.png 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><\/a><p id=\"caption-attachment-2765\" class=\"wp-caption-text\">Add new data source<\/p><\/div><\/li>\n<li>Add the ZappySys XML Driver if you are accessing XML files from S3 Bucket or calling any AWS API which returns data in XML format. Select JSON driver for JSON data (or API Access in JSON Format)\n<div id=\"attachment_3875\" style=\"width: 603px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/zappysys-odbc-xml-soap-api-driver.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3875\" class=\"size-full wp-image-3875\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/zappysys-odbc-xml-soap-api-driver.png\" alt=\"ZappySys ODBC Driver for XML \/ SOAP API\" width=\"593\" height=\"459\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/zappysys-odbc-xml-soap-api-driver.png 593w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/zappysys-odbc-xml-soap-api-driver-300x232.png 300w\" sizes=\"(max-width: 593px) 100vw, 593px\" \/><\/a><p id=\"caption-attachment-3875\" class=\"wp-caption-text\">Create DSN using ZappySys ODBC Driver for XML \/ SOAP API<\/p><\/div><\/li>\n<li>It is time to connect with <strong>Amazon S3 File<\/strong> and read data. In\u00a0<strong>Data Source (URL or File Path),<\/strong> we will use XML file URL as below. Notice that S3 URL has 3 parts (<strong>zs-dump1<\/strong> is bucket name,\u00a0<strong>s3.us-east-1.amazonaws.com<\/strong> is service endpoint for S3 (some service doesn&#8217;t require region) and <strong>store_001.xml<\/strong> is our file name. After you specify URL select Connection as per the screenshot.<strong>Syntax for URL :\u00a0 BucketName<\/strong> + <strong>ServiceURL<\/strong> + <strong>FilePath.<\/strong>If you are not sure what can be your service endpoint then check <a href=\"https:\/\/docs.aws.amazon.com\/general\/latest\/gr\/rande.html\" target=\"_blank\" rel=\"noopener\">this table<\/a>.\n<pre class=\"lang:php highlight:0 decode:true\">https:\/\/zs-dump1.s3.amazonaws.com\/store_001.xml\r\n--OR--\r\nhttps:\/\/zs-dump1.s3.amazonaws.com\/mysubfolder\/store_001.xml\r\n--OR--\r\nhttps:\/\/zs-dump1.s3.us-east-1.amazonaws.com\/mysubfolder\/store_001.xml<\/pre>\n<div id=\"attachment_3982\" style=\"width: 773px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/xml-file-amazon-aws-api-connection-for-power-bi-tableau-informatica.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3982\" class=\"size-full wp-image-3982\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/xml-file-amazon-aws-api-connection-for-power-bi-tableau-informatica.png\" alt=\"Configure Amazon S3 Connection - Read from XML \/ JSON File\" width=\"763\" height=\"572\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/xml-file-amazon-aws-api-connection-for-power-bi-tableau-informatica.png 763w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/xml-file-amazon-aws-api-connection-for-power-bi-tableau-informatica-300x225.png 300w\" sizes=\"(max-width: 763px) 100vw, 763px\" \/><\/a><p id=\"caption-attachment-3982\" class=\"wp-caption-text\">Configure Amazon S3 Connection &#8211; Read from XML File or JSON File<\/p><\/div>\n<div class=\"su-note\"  style=\"border-color:#e5de9d;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><div class=\"su-note-inner su-u-clearfix su-u-trim\" style=\"background-color:#fff8b7;border-color:#ffffff;color:#333333;border-radius:3px;-moz-border-radius:3px;-webkit-border-radius:3px;\"><strong>NOTE:<\/strong> If a filename contains a space, e.g. &#8220;<em>store abc.xml<\/em>&#8220;, make sure to replace space with <em>&#8220;%20&#8221;<\/em> (&#8220;+&#8221; will <strong>not<\/strong> work). So &#8220;store abc.xml&#8221; should become &#8220;<em>store%20abc.xml<\/em>&#8220;. <\/div><\/div><\/li>\n<li>Once you specify the URL and Credentials, Next select Filter (This helps to flatten the nested hierarchy of your Data). If you don&#8217;t have nested Hierarchy then skip this step.\n<div id=\"attachment_3983\" style=\"width: 817px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-driver-read-amazon-s3-xml-file-1.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3983\" class=\"size-full wp-image-3983\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-driver-read-amazon-s3-xml-file-1.png\" alt=\"Select Filter (Flatten the hierarchy to extract data from nested structure)\" width=\"807\" height=\"701\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-driver-read-amazon-s3-xml-file-1.png 807w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-driver-read-amazon-s3-xml-file-1-300x261.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-driver-read-amazon-s3-xml-file-1-768x667.png 768w\" sizes=\"(max-width: 807px) 100vw, 807px\" \/><\/a><p id=\"caption-attachment-3983\" class=\"wp-caption-text\">Select Filter (Flatten the hierarchy to extract data from nested structure)<\/p><\/div>\n<p>&nbsp;<\/li>\n<li>Now go to Preview Tab and click Preview button in the toolbar. You can remove attributes in the query to use default attributes from Previous Tab. You can always override DSN level setting inside WITH clause of SQL.\n<div id=\"attachment_3984\" style=\"width: 618px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/read-xml-json-from-amazon-s3-bucket-power-bi-tableau-reports-etl-informatica.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3984\" class=\"size-full wp-image-3984\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/read-xml-json-from-amazon-s3-bucket-power-bi-tableau-reports-etl-informatica.png\" alt=\"Preview data from AWS S3 File (XML Data) - Use ZappySys XML Driver to Connect to AWS API\" width=\"608\" height=\"701\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/read-xml-json-from-amazon-s3-bucket-power-bi-tableau-reports-etl-informatica.png 608w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/read-xml-json-from-amazon-s3-bucket-power-bi-tableau-reports-etl-informatica-260x300.png 260w\" sizes=\"(max-width: 608px) 100vw, 608px\" \/><\/a><p id=\"caption-attachment-3984\" class=\"wp-caption-text\">Preview data from AWS S3 File (XML Data) &#8211; Use ZappySys XML Driver to Connect to AWS API<\/p><\/div><\/li>\n<li>To learn more about query language click on View Examples<\/li>\n<li>Click OK to save your ODBC DSN settings.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h3>Import AWS S3 File or AWS API data in Power BI dataset<\/h3>\n<p>Now let&#8217;s look at how to import Amazon S3 data in Power BI using ZappySys XML driver.<\/p>\n<p>In the previous section, we configured ODBC DSN for AWS API call and added the ZappySys drivers in the ODBC Driver Administrator with information to connect to AWS REST API. We queried S3 File using ZappySys XML Driver. Now we will open Power BI and import the information from ZappySys JSON Driver via ODBC connectivity option in Power BI.<\/p>\n<ol>\n<li>Open Power BI Desktop and select the option <strong>Get data<\/strong>\n<div id=\"attachment_2830\" style=\"width: 802px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2830\" class=\"wp-image-2830 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop.png\" alt=\"Get data using power bi\" width=\"792\" height=\"335\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop.png 792w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop-300x127.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/Get-data-Power-bi-desktop-768x325.png 768w\" sizes=\"(max-width: 792px) 100vw, 792px\" \/><\/a><p id=\"caption-attachment-2830\" class=\"wp-caption-text\">Get data in power bi<\/p><\/div><\/li>\n<li>Get Data will allow adding the ZappySys ODBC driver. Go to <strong>Other<\/strong> and select <strong>ODBC.<\/strong>\n<div id=\"attachment_2835\" style=\"width: 617px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-odbc-other-data-source.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2835\" class=\"size-full wp-image-2835\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-odbc-other-data-source.png\" alt=\"select odbc using power bi\" width=\"607\" height=\"635\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-odbc-other-data-source.png 607w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-odbc-other-data-source-287x300.png 287w\" sizes=\"(max-width: 607px) 100vw, 607px\" \/><\/a><p id=\"caption-attachment-2835\" class=\"wp-caption-text\">Select odbc in Power BI<\/p><\/div><\/li>\n<li>Select ODBC DSN name from the DSN dropdown<\/li>\n<li>Now its time to import data. Basically, there are two modes to import data. <strong>Table Mode<\/strong> and <strong>Query Mode<\/strong>. We will\u00a0<strong>Import using Power BI Query Mode<\/strong><\/li>\n<li>Select your DSN and click Advanced Option to enter custom SQL Query to Import your REST API data. You can use ODBC DSN Data sources Preview tool to generate SQL Query. For example, you can enter a query like below.\n<pre class=\"lang:tsql decode:true\">SELECT \"author\", \"title\",  \"genre\", \"price\",  \"publish_date\", \"description\", \"tag\"\r\nFROM $\r\nWITH(\r\n\t Src='https:\/\/zs-dump1.s3.amazonaws.com\/store_001.xml'\r\n\t,Filter='$.store.book[*]'\r\n\t,ElementsToTreatAsArray='book'\r\n)<\/pre>\n<div id=\"attachment_3861\" style=\"width: 528px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-import-from-rest-api-url-odbc-json-driver.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3861\" class=\"size-full wp-image-3861\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-import-from-rest-api-url-odbc-json-driver.png\" alt=\"Import JSON \/ REST API data in Power BI using SQL Query Mode\" width=\"518\" height=\"581\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-import-from-rest-api-url-odbc-json-driver.png 518w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/power-bi-import-from-rest-api-url-odbc-json-driver-267x300.png 267w\" sizes=\"(max-width: 518px) 100vw, 518px\" \/><\/a><p id=\"caption-attachment-3861\" class=\"wp-caption-text\">Import JSON \/ REST API data in Power BI using SQL Query Mode<\/p><\/div>\n<p>&nbsp;<\/li>\n<li>On the next screen select <strong>Windows Authentication<\/strong> to continue (No userid and password).\n<div id=\"attachment_2853\" style=\"width: 710px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/select-credentials-zappysys.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2853\" class=\"size-full wp-image-2853\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/select-credentials-zappysys.png\" alt=\"Select credentials\" width=\"700\" height=\"346\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/select-credentials-zappysys.png 700w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/03\/select-credentials-zappysys-300x148.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><p id=\"caption-attachment-2853\" class=\"wp-caption-text\">Select Windows Credentials to connect to zappysys driver<\/p><\/div><\/li>\n<li>Click OK to import data in Power BI<\/li>\n<li>Now you can create custom Dashboard from imported Dataset.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2>AWS API Example &#8211;\u00a0Import Amazon AWS Cost \/ Billing data in Power BI<\/h2>\n<p>So far you have seen how to connect to S3 File. Now let&#8217;s look at another interesting example to call AWS API and display information in Power BI dashboard. For example purpose, we are going to call this <a href=\"https:\/\/docs.aws.amazon.com\/aws-cost-management\/latest\/APIReference\/API_GetCostAndUsage.html\" target=\"_blank\" rel=\"noopener\">AWS Billing and Cost Analysis API<\/a>. Perform following steps.<\/p>\n<ol>\n<li>Create new DSN using Zappysys JSON Driver<\/li>\n<li>Configure ODBC DSN as below<\/li>\n<li>Enter URL as we discussed in previous section. For example to call Billing API Service for East-1 Region we need to enter following way.\n<pre class=\"lang:default highlight:0 decode:true \">https:\/\/ce.us-east-1.amazonaws.com<\/pre>\n<\/li>\n<li>Select Connection Type as <strong>OAuth<\/strong>\u00a0and click Configure Link.<\/li>\n<li>Select Provider as <strong>AWS API v4<\/strong>\u00a0and enter AWS Key and Secret. Click OK to save the connection.<\/li>\n<li>Select Method as <strong>POST<\/strong><\/li>\n<li>Enter HTTP Request Headers as below (Note each Billing Cost API action will have different Header value for X-Amz-Target so refer <a href=\"https:\/\/docs.aws.amazon.com\/aws-cost-management\/latest\/APIReference\/Welcome.html\" target=\"_blank\" rel=\"noopener\">API documentation<\/a>\n<div id=\"attachment_4005\" style=\"width: 818px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/call-aws-rest-api-example-json-driver-amazon-billing-cost-api-setup.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4005\" class=\"size-full wp-image-4005\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/call-aws-rest-api-example-json-driver-amazon-billing-cost-api-setup.png\" alt=\"Configure AWS API Connection for Cost \/ Billing API Data - Use ZappySys JSON Driver\" width=\"808\" height=\"702\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/call-aws-rest-api-example-json-driver-amazon-billing-cost-api-setup.png 808w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/call-aws-rest-api-example-json-driver-amazon-billing-cost-api-setup-300x261.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/call-aws-rest-api-example-json-driver-amazon-billing-cost-api-setup-768x667.png 768w\" sizes=\"(max-width: 808px) 100vw, 808px\" \/><\/a><p id=\"caption-attachment-4005\" class=\"wp-caption-text\">Configure AWS API Connection for Cost \/ Billing API Data &#8211; Use ZappySys JSON Driver<\/p><\/div><\/li>\n<li>Enter Request Body (Modify your report parameters). As you see in below request we are requesting billing data for 3 services for Jan-1-2018 till Jun-15-2018. If you dont know service name then simply refer to your Bill and copy Service Name in Values array.\n<pre class=\"lang:js decode:true \">{\r\n  \"TimePeriod\": {\r\n    \"Start\":\"2018-01-01\",\r\n    \"End\": \"2018-06-15\"\r\n  },\r\n  \"Granularity\": \"MONTHLY\",\r\n  \"Filter\": {      \r\n    \"Dimensions\": {\r\n      \"Key\": \"SERVICE\",\r\n      \"Values\": [\r\n        \"Amazon Simple Storage Service\",\r\n        \"Amazon DynamoDB\",\r\n        \"Amazon Redshift\",\r\n        \"AWS Key Management Service\"\r\n      ]\r\n    }\r\n  },\r\n  \"GroupBy\":[\r\n    {\r\n      \"Type\":\"DIMENSION\",\r\n      \"Key\":\"SERVICE\"\r\n    },\r\n    {\r\n      \"Type\":\"TAG\",\r\n      \"Key\":\"Environment\"\r\n    }\r\n  ],\r\n   \"Metrics\":[\"BlendedCost\", \"UnblendedCost\", \"UsageQuantity\"]\r\n}<\/pre>\n<p>&nbsp;<\/li>\n<li>Select Filter as\u00a0<strong>$.ResultsByTime[*].Groups[*]<\/strong><\/li>\n<li>Click Test Connection button see it shows OK.<\/li>\n<li>If the connection is OK then switch to Preview Tab to test query.<\/li>\n<li>You can select Table name from the drop-down or type query as below<br \/>\n<strong>Simple-Query to Extract AWS Billing \/ Cost Information<\/strong><\/p>\n<pre class=\"lang:tsql decode:true\">SELECT  \r\n \"p_ResultsByTime_TimePeriod_Start\" as BillStartDate,\r\n \"p_ResultsByTime_TimePeriod_End\" as BillEndDate,\r\n json_array_first(\"Keys\") as ServiceName,\r\n \"Metrics_BlendedCost_Amount\" as BillAmount,\r\n \"Metrics_UsageQuantity_Amount\" as Quantity\r\nFROM [ResultsByTime_x_Groups] \r\nORDER BY p_ResultsByTime_TimePeriod_Start<\/pre>\n<\/li>\n<li>You can also override attributes in your query using below syntax<br \/>\n<strong>Custom-Query to Extract AWS Billing \/ Cost Information (WITH clause)<\/strong><\/p>\n<pre class=\"lang:tsql decode:true\">SELECT \r\n \"p_ResultsByTime_TimePeriod_Start\" as BillStartDate,\r\n \"p_ResultsByTime_TimePeriod_End\" as BillEndDate,\r\n json_array_first(\"Keys\") as ServiceName,\r\n \"Metrics_BlendedCost_Amount\" as BillAmount,\r\n \"Metrics_UsageQuantity_Amount\" as Quantity\r\nFROM $\r\nORDER BY p_ResultsByTime_TimePeriod_Start\r\nWITH(\r\n\t Src='https:\/\/ce.us-east-1.amazonaws.com'\r\n\t,DataConnectionType='OAuth'\r\n\t,ScopeSeparator='{space}'\r\n\t,ServiceProvider='AmazonAWS'\r\n\t--,ClientId='AKIAxxxxxxxxxxxxxxx'\r\n\t--,ClientSecret='lPi+XQxxxxxxxxxxxxxxxx'\r\n\t,UseCustomApp='True'\r\n\t,Filter='$.ResultsByTime[*].Groups[*]'\r\n\t,RequestData='{\r\n  \"TimePeriod\": {\r\n    \"Start\":\"2018-01-01\",\r\n    \"End\": \"2018-06-15\"\r\n  },\r\n  \"Granularity\": \"MONTHLY\",\r\n  \"Filter\": {      \r\n    \"Dimensions\": {\r\n      \"Key\": \"SERVICE\",\r\n      \"Values\": [\r\n        \"Amazon Simple Storage Service\",\r\n        \"Amazon DynamoDB\",\r\n        \"Amazon Redshift\",\r\n        \"AWS Key Management Service\"\r\n      ]\r\n    }\r\n  },\r\n  \"GroupBy\":[\r\n    {\r\n      \"Type\":\"DIMENSION\",\r\n      \"Key\":\"SERVICE\"\r\n    },\r\n    {\r\n      \"Type\":\"TAG\",\r\n      \"Key\":\"Environment\"\r\n    }\r\n  ],\r\n   \"Metrics\":[\"BlendedCost\", \"UnblendedCost\", \"UsageQuantity\"]\r\n}'\r\n\t,Header='X-Amz-Target: AWSInsightsIndexService.GetCostAndUsage || Content-Type: application\/x-amz-json-1.1'\r\n\t,RequestMethod='POST'\r\n)\r\n<\/pre>\n<\/li>\n<li>Click Preview button to see the result.\n<div id=\"attachment_4004\" style=\"width: 773px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/get-amazon-billing-cost-using-rest-api-query-zappysys-json-driver.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4004\" class=\"size-full wp-image-4004\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/get-amazon-billing-cost-using-rest-api-query-zappysys-json-driver.png\" alt=\"Query AWS Cost \/ Billing Data using API in Power BI (Use ZappySys JSON Driver)\" width=\"763\" height=\"884\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/get-amazon-billing-cost-using-rest-api-query-zappysys-json-driver.png 763w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/get-amazon-billing-cost-using-rest-api-query-zappysys-json-driver-259x300.png 259w\" sizes=\"(max-width: 763px) 100vw, 763px\" \/><\/a><p id=\"caption-attachment-4004\" class=\"wp-caption-text\">Query AWS Cost \/ Billing Data using API in Power BI (Use ZappySys JSON Driver)<\/p><\/div><\/li>\n<li>Click OK to save Your DSN<\/li>\n<li>Now you can Import Billing \/ Cost data in Power BI using same steps as previous section (Except use custom Query and DSN we just created for AWS API call)\n<div id=\"attachment_4110\" style=\"width: 940px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/import-aws-rest-api-billing-cost-data-power-bi.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4110\" class=\"size-full wp-image-4110\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/import-aws-rest-api-billing-cost-data-power-bi.png\" alt=\"Import AWS Billing \/ Cost Data in Power BI (Call AWS REST API)\" width=\"930\" height=\"499\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/import-aws-rest-api-billing-cost-data-power-bi.png 930w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/import-aws-rest-api-billing-cost-data-power-bi-300x161.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/import-aws-rest-api-billing-cost-data-power-bi-768x412.png 768w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><p id=\"caption-attachment-4110\" class=\"wp-caption-text\">Import AWS Billing \/ Cost Data in Power BI (Call AWS REST API)<\/p><\/div><\/li>\n<li>Repeat steps to import more datasets using different queries<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2>AWS API Example &#8211; Import Data From AWS Lambda in Power BI<\/h2>\n<p>Now let&#8217;s look at another scenario. Assume that someone from other team has written a Lambda Function which exposes certain data in JSON format which you want to display that in your Dashboard. Refer to this <a href=\"https:\/\/docs.aws.amazon.com\/lambda\/latest\/dg\/API_Invoke.html\" target=\"_blank\" rel=\"noopener\">Lambda API documentation<\/a> to learn more about API syntax.<\/p>\n<p>Here is an example query to Call Lambda Function (submit input data in JSON and receive data in JSON format)<\/p>\n<pre class=\"lang:tsql decode:true\">SELECT * FROM $\r\nWITH(\r\n\t Src='https:\/\/lambda.us-east-1.amazonaws.com\/2015-03-31\/functions\/HelloWorld\/invocations'\r\n\t,RequestMethod='POST'\r\n\t,RequestData='{\"id\":1}'\r\n\t,RequestContentTypeCode='ApplicationJson'\r\n\t\r\n\t\/*** Uncomment to override DSN settings\t  \r\n\t,DataConnectionType='OAuth'\r\n\t,ScopeSeparator='{space}'\r\n\t,ServiceProvider='AmazonAWS'\r\n\t--,ClientId='AKxxxxxxxxxxx'\r\n\t--,ClientSecret='lPi+Xxxxxxxxxxxxxxxxxxxxxxx'\r\n\t,UseCustomApp='True'\r\n\t***\/\r\n)<\/pre>\n<p>&nbsp;<\/p>\n<h2>AWS API Example &#8211; Get EC2 VM information in Power BI<\/h2>\n<p>Now let&#8217;s look at AWS EC2 Service API (Virtual Machine Service). This API is in XML format so you have to use ZappySys XML Driver.\u00a0 Below query calls <a href=\"https:\/\/docs.aws.amazon.com\/AWSEC2\/latest\/APIReference\/API_DescribeInstances.html\" target=\"_blank\" rel=\"noopener\">this EC2 API<\/a> to get list of all instances.<\/p>\n<p>&nbsp;<\/p>\n<pre class=\"lang:tsql decode:true\">SELECT * FROM $\r\nWITH(\r\n\t ElementsToTreatAsArray='item'\r\n\t,Src='https:\/\/ec2.us-east-1.amazonaws.com\/'\r\n\t,Filter='$.DescribeInstancesResponse.reservationSet.item[*].instancesSet.item[*]'\r\n\t,RequestData='Action=DescribeInstances&amp;Version=2016-11-15'\r\n\t,RequestMethod='POST'\r\n\t\/*\r\n\t,DataConnectionType='OAuth'\r\n\t,ScopeSeparator='{space}'\r\n\t,ServiceProvider='AmazonAWS'\r\n\t,ClientId='AKIAxxxxxxxxxxxxxxxxxxx'\r\n\t,ClientSecret='lPi+XQvxxxxxxxxxxxxxxxxxxxxxxxxx'\r\n\t,UseCustomApp='True'\r\n\t*\/\r\n)<\/pre>\n<p>&nbsp;<\/p>\n<div id=\"attachment_4111\" style=\"width: 1010px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/query-aws-ec2-instances-power-bi-use-zappysys-rest-xml-driver.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-4111\" class=\"size-full wp-image-4111\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/query-aws-ec2-instances-power-bi-use-zappysys-rest-xml-driver.png\" alt=\"Get EC2 Instance List in Power BI (Use ZappySys XML Driver)\" width=\"1000\" height=\"658\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/query-aws-ec2-instances-power-bi-use-zappysys-rest-xml-driver.png 1000w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/query-aws-ec2-instances-power-bi-use-zappysys-rest-xml-driver-300x197.png 300w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/query-aws-ec2-instances-power-bi-use-zappysys-rest-xml-driver-768x505.png 768w\" sizes=\"(max-width: 1000px) 100vw, 1000px\" \/><\/a><p id=\"caption-attachment-4111\" class=\"wp-caption-text\">Get EC2 Instance List in Power BI (Use ZappySys XML Driver)<\/p><\/div>\n<p>&nbsp;<\/p>\n<h2>AWS API Example &#8211; Get AWS S3 Buckets and Files Count \/ Size in Power BI<\/h2>\n<p>Now let&#8217;s look at how to Query S3 File System in Power BI. For example if you have to prepare dashboard to show Total Data Size and File count in a given Bucket then you can write following Query. For more information check <a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/API\/v2-RESTBucketGET.html\" target=\"_blank\" rel=\"noopener\">Bucket List API Help<\/a><\/p>\n<p><strong>Get File Size and Count for a given S3 Bucket<\/strong><\/p>\n<pre class=\"lang:tsql decode:true\">SELECT count(*) as TotalFiles,sum(Size)\/1024\/1024 as TotalMB  FROM $\r\nWITH(\r\n\t ElementsToTreatAsArray='Contents'\r\n\t,Src='https:\/\/zs-dump1.s3.amazonaws.com\/?list-type=2&amp;prefix=&amp;max-keys=1000'\r\n\t,Filter='$.ListBucketResult.Contents[*]'\r\n\t,NextUrlAttributeOrExpr='$.ListBucketResult.NextContinuationToken'\r\n\t,NextUrlSuffix='&amp;continuation-token=&lt;%nextlink_encoded%&gt;'\r\n\t\r\n\t\/**** Uncomment below to use override DSN values\r\n\t,DataConnectionType='OAuth'\r\n\t,ScopeSeparator='{space}'\r\n\t,ServiceProvider='AmazonAWS'\r\n\t,ClientId='AKIAxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'\r\n\t,ClientSecret='lPi+Xcxxxxxxxxxxxxxxxxxxxxxxxx'\r\n\t,UseCustomApp='True'\t\r\n\t,RequestMethod='GET'\r\n\t***\/\r\n)<\/pre>\n<p>To list buckets you can use following query<\/p>\n<p><strong>List S3 Buckets<\/strong><\/p>\n<pre class=\"lang:tsql decode:true\">SELECT *  FROM $\r\nWITH(\t \r\n\t Src='https:\/\/s3.amazonaws.com'\r\n\t,Filter='$.ListAllMyBucketsResult.Buckets.Bucket[*]'\r\n\t,ElementsToTreatAsArray='Buckets'\r\n\r\n\t\/**** Uncomment below to use override DSN values\r\n\t,DataConnectionType='OAuth'\r\n\t,ScopeSeparator='{space}'\r\n\t,ServiceProvider='AmazonAWS'\r\n\t,ClientId='AKIAxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'\r\n\t,ClientSecret='lPi+Xcxxxxxxxxxxxxxxxxxxxxxxxx'\r\n\t,UseCustomApp='True'\t\r\n\t,RequestMethod='GET'\r\n\t***\/\r\n)<\/pre>\n<p>&nbsp;<\/p>\n<h2>Debugging \/ Crafting AWS API Call Request<\/h2>\n<p>Check below article to learn various techniques to debug and craft AWS API Request Body \/ Headers and URL.<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"5AMMHunS6j\"><p><a href=\"https:\/\/zappysys.com\/blog\/how-to-call-amazon-aws-api-using-ssis-ec2-lambda-api-gateway-sqs\/\">How to call Amazon AWS API using SSIS (EC2, Lambda, API Gateway, SQS)<\/a><\/p><\/blockquote>\n<p><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" src=\"https:\/\/zappysys.com\/blog\/how-to-call-amazon-aws-api-using-ssis-ec2-lambda-api-gateway-sqs\/embed\/#?secret=5AMMHunS6j\" data-secret=\"5AMMHunS6j\" width=\"600\" height=\"338\" title=\"&#8220;How to call Amazon AWS API using SSIS (EC2, Lambda, API Gateway, SQS)&#8221; &#8212; ZappySys Blog\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<h2><\/h2>\n<h2>Understanding AWS REST API Pagination in Power BI<\/h2>\n<div class=\"content_block\" id=\"custom_post_widget-3892\"><div style=\"margin-bottom: 1em;\">Even we set up ODBC Data Source to get the data, it may not be enough. Usually, if you are getting a huge data set from API provider, it won't give it to you in one HTTP response. Instead, it gives back only a subset of data and provides a mechanism for data pagination. The good news is that\u00a0<em>ZappySys ODBC Driver<\/em> includes many options to cover virtually any pagination method.<\/div>\r\n<div><span style=\"font-size: 16px;\">Below you will find a few examples of API pagination. If you need something more sophisticated check the below link (the article was written for SSIS PowerPack but UI options and concepts apply to ODBC Driver too):<\/span><\/div>\r\n<div style=\"margin-bottom: 1em;\"><a href=\"https:\/\/zappysys.com\/blog\/ssis-rest-api-looping-until-no-more-pages-found\/\" target=\"_blank\" rel=\"noopener\">https:\/\/zappysys.com\/blog\/ssis-rest-api-looping-until-no-more-pages-found\/<\/a><\/div>\r\n<h3>Paginate by Response Attribute<\/h3>\r\nThis example shows how to paginate API calls where you need to paginate until the last page detected. In this example, next page is indicated by some attribute called nextlink (found in response). If this attribute is missing or null then it stops fetching the next page.\r\n<pre class=\"lang:tsql decode:true codeblock\">SELECT * FROM $\r\nWITH(\r\nSRC=@'https:\/\/zappysys.com\/downloads\/files\/test\/pagination_nextlink_inarray_1.json'\r\n,NextUrlAttributeOrExpr = '$.nextlink'  --keep reading until this attribute is missing. If attribute name contains dot then use brackets like this $.['my.attr.name']\r\n)<\/pre>\r\n<h3>Paginate by URL Parameter (Loop until certain StatusCode)<\/h3>\r\nThis example shows how to paginate API calls where you need to pass page number via URL. The driver keeps incrementing page number and calls next URL until the last page detected (401 error). There are few ways to indicate the last page (e.g. By status code, By row count, By response size). If you don't specify end detection then it will use the default (i.e. No records found).\r\n<pre class=\"lang:tsql decode:true codeblock\">SELECT * FROM $\r\nWITH (\r\nSRC=@'https:\/\/zappysys.com\/downloads\/files\/test\/page-xml.aspx?page=1&amp;mode=DetectBasedOnResponseStatusCode'\r\n,PagingMode='ByUrlParameter'\r\n,PagingByUrlAttributeName='page'\r\n,PagingByUrlEndStrategy='DetectBasedOnResponseStatusCode'\r\n,PagingByUrlCheckResponseStatusCode=401\r\n,IncrementBy=1\r\n)<\/pre>\r\n<h3>Paginate by URL Path (Loop until no record)<\/h3>\r\nThis example shows how to paginate API calls where you need to pass page number via URL Path. The driver keeps incrementing page number and calls next URL until the last page is detected. There are few ways to indicate the last page (e.g. By status code, By row count, By response size). If you don't specify end detection then it will use the default (i.e. No records found).\r\n<pre class=\"lang:tsql decode:true codeblock\">SELECT * FROM $\r\nWITH (\r\nSRC=@'https:\/\/zappysys.com\/downloads\/files\/test\/cust-&lt;%page%&gt;.xml'\r\n,PagingMode='ByUrlPath'\r\n,PagingByUrlAttributeName='&lt;%page%&gt;'\r\n,PagingByUrlEndStrategy='DetectBasedOnRecordCount'\r\n,IncrementBy=1\r\n)<\/pre>\r\n<h3>Paginate by Header Link (RFC 5988)<\/h3>\r\nAPI like GitHub \/ Wordpress use Next link in Headers (<a href=\"https:\/\/tools.ietf.org\/html\/rfc5988\" target=\"_blank\" rel=\"noopener\">RFC 5988<\/a>)\r\n<pre class=\"lang:default decode:true \">SELECT * FROM $\r\nLIMIT 25\r\nWITH(\r\n\t Src='https:\/\/wordpress.org\/news\/wp-json\/wp\/v2\/categories?per_page=10'\r\n\t,PagingMode='ByResponseHeaderRfc5988'\r\n\t,WaitTimeMs='200' --\/\/wait 200 ms after each request\r\n)<\/pre>\r\n&nbsp;<\/div>\n<h2>Handling\u00a0AWS\u00a0Web API\u00a0Error in Power BI<\/h2>\n<div class=\"content_block\" id=\"custom_post_widget-3894\">Sometimes errors occur... they just do and there is nothing you can do! Or can you? Actually, in ODBC PowerPack you can handle them in two ways.\r\n<h3>METHOD 1 - Using Error Handling Options<\/h3>\r\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3949\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-api-error-handling-1.png\" alt=\"\" width=\"668\" height=\"702\" \/>\r\n<h4>When to use?<\/h4>\r\nYou may want to use them when your source is a resource located\u00a0on\u00a0the Internet; e.g. a file on a website, a file on an FTP server or just a plain API HTTP response. By default, when a remote server returns an error, data retrieval is stopped, an error is raised and no data is given back to you. This might not be always desirable.\r\n<h4>Scenario 1<\/h4>\r\nImagine a scenario, that there is a\u00a0web server which\u00a0each day at 12 AM releases a new JSON file with\u00a0that day's date as filename, e.g. <span style=\"text-decoration: underline;\"><em>http:\/\/www.some-server.com\/data\/2018-06-20.json<\/em><\/span>. And, of course, you want to download it and use it daily in your Power BI report. But you have a problem: Power BI report data sources are\u00a0refreshed each\u00a0hour and you may get\u00a0<a href=\"https:\/\/en.wikipedia.org\/wiki\/HTTP_404\" target=\"_blank\" rel=\"noopener\">HTTP 404 status code<\/a>\u00a0(no file was found) when a\u00a0file is not released yet. Which consequentially means other data sources won't be updated as well and you will see old and cached data on the report. That's where\u00a0you could use\u00a0<strong><span class=\"lang:default highlight:0 decode:true crayon-inline\">Continue on any error<\/span><\/strong>\u00a0or <strong><span class=\"lang:default highlight:0 decode:true crayon-inline\">Continue when Url is invalid or missing (404 Errors)<\/span><\/strong>\u00a0to avoid an error being raised and let other data sources to be updated.\r\n<h4>Scenario 2<\/h4>\r\nAnother scenario is when you expect a web server to raise some kind of HTTP error when accessing a URL. You don't want ODBC Data Source to raise an error but instead, you want to get response data. That's where you can use\u00a0<strong><span class=\"lang:default highlight:0 decode:true crayon-inline\">Continue on any error<\/span><\/strong>\u00a0or alike together with\u00a0\u00a0<strong><span class=\"lang:default highlight:0 decode:true crayon-inline\">Get response data on error<\/span><\/strong>\u00a0to continue on an error and get the data:\r\n\r\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3961 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-powerpack-get-response-data-on-error.png\" alt=\"\" width=\"547\" height=\"235\" srcset=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-powerpack-get-response-data-on-error.png 547w, https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-powerpack-get-response-data-on-error-300x129.png 300w\" sizes=\"(max-width: 547px) 100vw, 547px\" \/>\r\n<h3>METHOD 2 - Using Connection [Retry Settings]<\/h3>\r\nAnother scenario you may run into is a buggy web server. You ask it to give you some file or data and it, like a snotty kid, just doesn't give it to you! You have to ask twice or thrice before it does its job. If that's the case, you have to retry HTTP requests using <em>Connection<\/em>:\r\n\r\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-3963 size-full\" src=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/odbc-api-error-handling-3.png\" alt=\"\" width=\"671\" height=\"572\" \/><\/div>\n<h2>Other Considerations for Calling AWS API in Power BI<\/h2>\n<div class=\"content_block\" id=\"custom_post_widget-3901\">There are few settings you can coder while calling Web API\r\n<h3><strong>API Limit \/ Throttling<\/strong><\/h3>\r\nWhile calling public API or other external web services one important aspect you have to check,\u00a0 how many requests are allowed by your API. Especially when you use API pagination options to pull many records you have to slow down based on API limits. For example, your API may allow you only 5 requests per second. Use Throttling Tab on Driver UI to set delay after each request.\r\n<h3><strong>2D Array Transformation<\/strong><\/h3>\r\nIf you are using JSON or XML API Driver then possible you may have to transform your data using 2D array transformation feature. <a href=\"https:\/\/zappysys.com\/blog\/parse-multi-dimensional-json-array-ssis\/\" target=\"_blank\" rel=\"noopener\">Check this link<\/a> for more information.\r\n\r\n&nbsp;<\/div>\n<h2>Conclusion<\/h2>\n<p>In this article, we show how to connect to AWS API and S3 File data in Power BI. We configured ODBC DSN for AWS S3 \/ REST API connection and finally imported data in Power BI.\u00a0 We used ZappySys driver for JSON that can be used to extract data from any REST API or a JSON file.\u00a0\u00a0<a href=\"https:\/\/zappysys.com\/products\/odbc-powerpack\/download\/\">Download ODBC PowerPack<\/a>\u00a0to try yourself see how easy it is to consume XML \/ JSON \/ REST API and AWS data in Power BI and Say goodbye to ETL or Coding.\u00a0 If you need any help with your API integration feel free to\u00a0<a href=\"https:\/\/zappysys.com\/support\/\">contact zappysys support<\/a>\u00a0you will be amazed for sure how quickly your issue is resolved.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction If you are looking around to find connectivity options to get\u00a0Amazon AWS data in Power BI (e.g. Read from Amazon S3 files (CSV, JSON, XML) or get AWS API data such as Billing Data by calling REST API) then unfortunately as of now Power BI doesn&#8217;t support it natively. In this article, you will [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3951,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[495,496,497,277,276,335,278],"tags":[29,256,6,255,3,35,7],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\r\n<title>Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML) | ZappySys Blog<\/title>\r\n<meta name=\"description\" content=\"Import Amazon S3 data in Power BI. Call AWS REST API to get data from AWS Services (e.g. Billing, EC2, S3, Lambda, Athena) using REST API XML \/ JSON Driver\" \/>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML) | ZappySys Blog\" \/>\r\n<meta property=\"og:description\" content=\"Import Amazon S3 data in Power BI. Call AWS REST API to get data from AWS Services (e.g. Billing, EC2, S3, Lambda, Athena) using REST API XML \/ JSON Driver\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/\" \/>\r\n<meta property=\"og:site_name\" content=\"ZappySys Blog\" \/>\r\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/ZappySys\/\" \/>\r\n<meta property=\"article:published_time\" content=\"2018-06-15T23:03:05+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2019-11-20T18:23:57+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png\" \/>\r\n\t<meta property=\"og:image:width\" content=\"310\" \/>\r\n\t<meta property=\"og:image:height\" content=\"310\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\r\n<meta name=\"author\" content=\"ZappySys\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/zappysys\/\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ZappySys\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"15 minutes\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/\",\"url\":\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/\",\"name\":\"Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML) | ZappySys Blog\",\"isPartOf\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png\",\"datePublished\":\"2018-06-15T23:03:05+00:00\",\"dateModified\":\"2019-11-20T18:23:57+00:00\",\"author\":{\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\"},\"description\":\"Import Amazon S3 data in Power BI. Call AWS REST API to get data from AWS Services (e.g. Billing, EC2, S3, Lambda, Athena) using REST API XML \/ JSON Driver\",\"breadcrumb\":{\"@id\":\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#primaryimage\",\"url\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png\",\"contentUrl\":\"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png\",\"width\":310,\"height\":310,\"caption\":\"Power BI Integration\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/zappysys.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/zappysys.com\/blog\/#website\",\"url\":\"https:\/\/zappysys.com\/blog\/\",\"name\":\"ZappySys Blog\",\"description\":\"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/zappysys.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82\",\"name\":\"ZappySys\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g\",\"caption\":\"ZappySys\"},\"sameAs\":[\"http:\/\/www.zappysys.com\/\",\"https:\/\/www.facebook.com\/ZappySys\/\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/\"],\"url\":\"https:\/\/zappysys.com\/blog\/author\/admin\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML) | ZappySys Blog","description":"Import Amazon S3 data in Power BI. Call AWS REST API to get data from AWS Services (e.g. Billing, EC2, S3, Lambda, Athena) using REST API XML \/ JSON Driver","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/","og_locale":"en_US","og_type":"article","og_title":"Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML) | ZappySys Blog","og_description":"Import Amazon S3 data in Power BI. Call AWS REST API to get data from AWS Services (e.g. Billing, EC2, S3, Lambda, Athena) using REST API XML \/ JSON Driver","og_url":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/","og_site_name":"ZappySys Blog","article_author":"https:\/\/www.facebook.com\/ZappySys\/","article_published_time":"2018-06-15T23:03:05+00:00","article_modified_time":"2019-11-20T18:23:57+00:00","og_image":[{"width":310,"height":310,"url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png","type":"image\/png"}],"author":"ZappySys","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/zappysys\/","twitter_misc":{"Written by":"ZappySys","Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/","url":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/","name":"Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML) | ZappySys Blog","isPartOf":{"@id":"https:\/\/zappysys.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#primaryimage"},"image":{"@id":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#primaryimage"},"thumbnailUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png","datePublished":"2018-06-15T23:03:05+00:00","dateModified":"2019-11-20T18:23:57+00:00","author":{"@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82"},"description":"Import Amazon S3 data in Power BI. Call AWS REST API to get data from AWS Services (e.g. Billing, EC2, S3, Lambda, Athena) using REST API XML \/ JSON Driver","breadcrumb":{"@id":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#primaryimage","url":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png","contentUrl":"https:\/\/zappysys.com\/blog\/wp-content\/uploads\/2018\/06\/power-bi-logo-310x310.png","width":310,"height":310,"caption":"Power BI Integration"},{"@type":"BreadcrumbList","@id":"https:\/\/zappysys.com\/blog\/read-amazon-s3-data-power-bi-aws-json-xml-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zappysys.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Read Amazon S3 data in Power BI or Call AWS REST API (JSON \/ XML)"}]},{"@type":"WebSite","@id":"https:\/\/zappysys.com\/blog\/#website","url":"https:\/\/zappysys.com\/blog\/","name":"ZappySys Blog","description":"SSIS \/ ODBC Drivers \/ API Connectors for JSON, XML, Azure, Amazon AWS, Salesforce, MongoDB and more","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zappysys.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/2756c237457fbc95d82cb38962f81f82","name":"ZappySys","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zappysys.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c9be148088ba9b8af8e955c5f7c22b5?s=96&d=mm&r=g","caption":"ZappySys"},"sameAs":["http:\/\/www.zappysys.com\/","https:\/\/www.facebook.com\/ZappySys\/","https:\/\/twitter.com\/https:\/\/twitter.com\/zappysys\/"],"url":"https:\/\/zappysys.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/3974"}],"collection":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/comments?post=3974"}],"version-history":[{"count":23,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/3974\/revisions"}],"predecessor-version":[{"id":8354,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/posts\/3974\/revisions\/8354"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media\/3951"}],"wp:attachment":[{"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/media?parent=3974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/categories?post=3974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zappysys.com\/blog\/wp-json\/wp\/v2\/tags?post=3974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}