Power BI for Developers @ SQLSaturday #369

38
Power BI for Developers Rui Romano DevScope, BI Team

Transcript of Power BI for Developers @ SQLSaturday #369

Page 1: Power BI for Developers @ SQLSaturday #369

Power BI for Developers

Rui Romano

DevScope, BI Team

Page 2: Power BI for Developers @ SQLSaturday #369

Rui Romano

[email protected] DevScope @ BI Team Blog

https://ruiromanoblog.wordpress.com

Twitter @RuiRomano

5/22/2015 2 |

Page 3: Power BI for Developers @ SQLSaturday #369

Our Main Sponsors:

Page 4: Power BI for Developers @ SQLSaturday #369

Say Thank you to Volunteers:

They spend their FREE time to give you this event.

Because they are crazy. Because they want YOU

to learn from the BEST IN THE WORLD.

Page 5: Power BI for Developers @ SQLSaturday #369

Paulo Matos:

Page 6: Power BI for Developers @ SQLSaturday #369

Pedro Simões:

Page 7: Power BI for Developers @ SQLSaturday #369

André Batista:

Page 8: Power BI for Developers @ SQLSaturday #369

Paulo Borges:

Page 9: Power BI for Developers @ SQLSaturday #369

André Melancia:

Page 10: Power BI for Developers @ SQLSaturday #369

Murilo Miranda:

Page 11: Power BI for Developers @ SQLSaturday #369

Quilson Antunes:

Page 12: Power BI for Developers @ SQLSaturday #369

5 Sponsor Sessions at 15:10

Don’t miss them, they might be getting distributing some awesome prizes!

Rumos BI4ALL Bold Int CozyRoc Pythian

Page 13: Power BI for Developers @ SQLSaturday #369

Important Activities:

WIT – Women in Technology 15:10 at BizSpark Room (Ground Floor)

SQLClinic Challenges 10:00 DEV (Neil Hambly) 11:50 DBA (Uwe Ricken) 17:00 BI (Steph Locke)

Page 14: Power BI for Developers @ SQLSaturday #369

Agenda

Intro to PowerBI PowerBI Developer Experience Labs

Lab 1 – Create Account Lab 2 – PowerBI Designer Lab 3 – Intro to REST Api’s Lab 4 – PowerShell & PowerBI Lab 5 - .Net & PowerBI

Page 15: Power BI for Developers @ SQLSaturday #369

PowerBI?

SaaS Data Service for all your data Unified experience to explore:

Any Data Any Device Anytime & Anywhere

Out of the box connectors to SaaS Solutions Extension to your current BI Investments

Page 16: Power BI for Developers @ SQLSaturday #369

PowerBI?

Page 17: Power BI for Developers @ SQLSaturday #369

PowerBI Designer

Data Exploration, Modeling & Visualization Tool PowerQuery + PowerPivot + PowerView Free Desktop App (x64 & x86)

Page 18: Power BI for Developers @ SQLSaturday #369

PowerBI Basics - DataSets?

DataSource & Data Model Collection of Tables with relationships Created in:

Excel, PowerBI Designer, SaaS Packages or API’s

Page 19: Power BI for Developers @ SQLSaturday #369

PowerBI Basics - Reports?

Interactive Visualizations Experience like PowerView

Connects to one DataSet “Pin” individual items to Dashboards Created in:

Browser, Excel, PowerBI Designer and SaaS Packages

Page 20: Power BI for Developers @ SQLSaturday #369

PowerBI Basics - Dashboards?

Collection of Tiles that represent what matters most to you

Connects to multiple DataSets & Reports Can be shared Created in:

Browser, SaaS Packages

Page 21: Power BI for Developers @ SQLSaturday #369

PowerBI for Developers

[email protected]

Credits: http://channel9.msdn.com/Events/Ignite/2015/BRK3551

Page 22: Power BI for Developers @ SQLSaturday #369

PowerBI Developer REST APIs

https://api.powerbi.com/beta/myorg /DataSets

GET DataSets - List DataSets POST DataSet – Create DataSet POST Table Rows – Upload Data DELETE Table Rows – Clear All PUT Table – Update Schema More Coming Soon…

/Reports ?

/Dashboards ?

• Standards based• REST• JSON• OAuth

• Cross Platform• Easy to use

Page 23: Power BI for Developers @ SQLSaturday #369

GET DataSets

GET https://api.powerbi.com/beta/myorg/datasets

Request Nothing

Response

{ "datasets": [ { "id": "5018fd65-71e6-47cb-8dde-68931545e7b8", "name": "MyMovies" }, { "id": "9862d253-f4a5-4997-9d06-1566aff78d5e", "name": "SQLSaturday_SalesMarketing" }, …]}

Page 24: Power BI for Developers @ SQLSaturday #369

POST DataSets

POSThttps://api.powerbi.com/beta/myorg/datasets?defaultRetentionPolicy=None

Request

{ "name": "SalesMarketing", "tables": [ { "name": "Product", "columns": [ { "name": "ProductID", "dataType": "Int64"}, { "name": "Name", "dataType": "string"}, { "name": “Price", "dataType": “double"}, { "name": "IsCompete", "dataType": "bool"}, { "name": "ManufacturedOn", "dataType": "DateTime"} ] } ]}

Page 25: Power BI for Developers @ SQLSaturday #369

POST DataSets

POSThttps://api.powerbi.com/beta/myorg/datasets?defaultRetentionPolicy=None

Response

{ "id": "38de2ce4-c3cf-4eda-978f-93339cba1669", "name": "SalesMarketing“}

Page 26: Power BI for Developers @ SQLSaturday #369

POST Table Rows

POST https://api.powerbi.com/beta/myorg/datasets/<dataSetId>/tables/<tableName>/rows

Request

{ "rows": [{ "ProductID":1, "Name":"Adjustable Race", "Category":"Components", "IsCompete":true, "ManufacturedOn":"07/30/2014" }, {

"ProductID":2, "Name":“Racing Bike", "Category":“Bikes", "IsCompete":true, "ManufacturedOn":“10/30/2014" }

]}

Page 27: Power BI for Developers @ SQLSaturday #369

POST Table Rows

POST https://api.powerbi.com/beta/myorg/datasets/<dataSetId>/tables/<tableName>/rows

Response HTTP Status Code (200 - if everything went OK)

Page 28: Power BI for Developers @ SQLSaturday #369

DELETE Table Rows

DELETEhttps://api.powerbi.com/beta/myorg/datasets/<dataSetId>/tables/<tableName>/rows

Request Empty

Response HTTP Status Code (200 - if everything went OK)

Page 29: Power BI for Developers @ SQLSaturday #369

PUT Table

PUThttps://api.powerbi.com/beta/myorg/datasets/<dataSetId>/tables/<tableName>

Request

{ "name": "Product", "columns": [ { "name": "ProductID", "dataType": "Int64"}, { "name": "Name", "dataType": "string"}, { "name": “Price", "dataType": “double"}, { "name": "IsCompete", "dataType": "bool"}, { "name": "ManufacturedOn", "dataType": "DateTime"},

{ "name": “NewColumn", "dataType": “double"} ] }

Page 30: Power BI for Developers @ SQLSaturday #369

PUT Table

PUThttps://api.powerbi.com/beta/myorg/datasets/<dataSetId>/tables/<tableName>

Response HTTP Status Code (200 - if everything went OK)

Page 31: Power BI for Developers @ SQLSaturday #369

Automatic Retention Policy

BasicFIFO Store up to 200.000 rows Affects all the Tables in the DataSet

Page 32: Power BI for Developers @ SQLSaturday #369

Not Supported (right now…)

Push data into existing data models Models created by: Excel, PowerBI Designer,…

Create relationships between tables Delete a range of data Delete a dataset Get data from a dataset

Page 33: Power BI for Developers @ SQLSaturday #369

Azure AD Application

OAuth Requirement Identification to PowerBI and Users Declares the permissions it needs

For User Consent

Two Types: Native App Web App

Page 34: Power BI for Developers @ SQLSaturday #369

OAuth: WebApp + PowerBI

Credits: http://channel9.msdn.com/Events/Ignite/2015/BRK3551

Page 35: Power BI for Developers @ SQLSaturday #369

OAuth: NativeApp + PowerBI

Credits: http://channel9.msdn.com/Events/Ignite/2015/BRK3551

Page 36: Power BI for Developers @ SQLSaturday #369

Demos

Page 37: Power BI for Developers @ SQLSaturday #369

Labs

OneNote: http://bit.do/pbi4devlabs Downloads: http://bit.do/pbi4devdownloads

Page 38: Power BI for Developers @ SQLSaturday #369

Our Main Sponsors: