Krok 3: Vytvoření datové sady v Power BIStep 3: Create a dataset in Power BI

Tento článek je součástí podrobného návodu k zápisu dat do datové sady.This article is part of a step-by-step walkthrough to push data into a dataset.

V kroku 2 Zápisu dat do datové sady, Získání přístupového tokenu pro ověření, jste získali token pro ověření ve službě Azure AD.In step 2 of Push data into a dataset, Get an authentication access token, you got a token to authenticate to Azure AD. V tomto kroku token použijete k volání operace PostDataset.In this step, you use the token to call the PostDataset operation.

Pokud chcete volat prostředek REST, použijete adresu URL, která prostředek vyhledá, a odešlete řetězec JavaScript Object Notation (JSON) popisující datovou sadu prostředku služby Power BI.To make a call to a REST resource, you use a url that locates the resource, and you send a JavaScript Object Notation (JSON) string, which describes the dataset, to the Power BI service resource. Prostředek REST identifikuje část služby Power BI, se kterou chcete pracovat.A REST resource identifies the part of the Power BI service you want to work with. Pokud chcete zapsat data do datové sady, je cílovým prostředkem Datová sada.To push data into the dataset, the target resource is a Dataset. Adresa URL, která identifikuje datovou sadu, je https://api.PowerBI.com/v1.0/myorg/datasets.The URL that identifies a dataset is https://api.PowerBI.com/v1.0/myorg/datasets. Pokud data zapisujete v rámci datové sady, adresa URL je https://api.PowerBI.com/v1.0/myorg/groups/{group_id}/datasets.If you are pushing data within a group, the url is https://api.PowerBI.com/v1.0/myorg/groups/{group_id}/datasets.

Pokud chcete operaci Power BI REST ověřit, přidejte token získaný v části Získání přístupového tokenu pro ověření do hlavičky požadavku:To authenticate a Power BI REST operation, you add the token you got in Get an authentication access token to a request header:

Při volání operace PostDataset se vytvoří nová datová sada.When you call the PostDataset operation, a new dataset is created.

vytvoření datové sady

Tady je postup vytvoření datové sady v Power BI.Here's how to create a dataset in Power BI.

Vytvoření datové sady v Power BICreate a dataset in Power BI

Poznámka

Než začnete, je třeba mít provedené předchozí kroky v návodu k zápisu dat do datové sady.Before you get started, make sure you have followed the previous steps in the push data into a dataset walkthrough.

  1. V projektu konzolové aplikace, kterou jste vytvořili v části Krok 2 – Získání přístupového tokenu pro ověření, přidejte do souboru Program.cs using System.Net; a using System.IO; .In the Console Application project you created in Step 2 - Get an authentication access token, add using System.Net;, and using System.IO; to Program.cs.
  2. V souboru Program.cs přidejte následující kód.In Program.cs, add the code below.
  3. Spusťte konzolovou aplikaci a přihlaste se ke svému účtu Power BI.Run the Console App, and login to your Power BI account. V okně konzoly byste měli vidět vytvořenou datovou sadu.You should see Dataset Created in the Console Window. Pokud chcete zobrazit novou datovou sadu, můžete se také přihlásit k Power BI.Also, you can login to Power BI to see the new dataset.

Ukázkový zápis dat do datové sadySample push data into a dataset

Tento kód vložte do souboru Program.cs.Add this code into Program.cs.

  • Ve výrazu static void Main(string[] args):In static void Main(string[] args):

    static void Main(string[] args)
    {
        //Get an authentication access token
        token = GetToken();
    
        //Create a dataset in Power BI
        CreateDataset();
    }
    
  • Přidejte metodu CreateDataset():Add a CreateDataset() method:

    #region Create a dataset in Power BI
    private static void CreateDataset()
    {
        //TODO: Add using System.Net and using System.IO
    
        string powerBIDatasetsApiUrl = "https://api.powerbi.com/v1.0/myorg/datasets";
        //POST web request to create a dataset.
        //To create a Dataset in a group, use the Groups uri: https://api.PowerBI.com/v1.0/myorg/groups/{group_id}/datasets
        HttpWebRequest request = System.Net.WebRequest.Create(powerBIDatasetsApiUrl) as System.Net.HttpWebRequest;
        request.KeepAlive = true;
        request.Method = "POST";
        request.ContentLength = 0;
        request.ContentType = "application/json";
    
        //Add token to the request header
        request.Headers.Add("Authorization", String.Format("Bearer {0}", token));
    
        //Create dataset JSON for POST request
        string datasetJson = "{\"name\": \"SalesMarketing\", \"tables\": " +
            "[{\"name\": \"Product\", \"columns\": " +
            "[{ \"name\": \"ProductID\", \"dataType\": \"Int64\"}, " +
            "{ \"name\": \"Name\", \"dataType\": \"string\"}, " +
            "{ \"name\": \"Category\", \"dataType\": \"string\"}," +
            "{ \"name\": \"IsCompete\", \"dataType\": \"bool\"}," +
            "{ \"name\": \"ManufacturedOn\", \"dataType\": \"DateTime\"}" +
            "]}]}";
    
        //POST web request
        byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(datasetJson);
        request.ContentLength = byteArray.Length;
    
        //Write JSON byte[] into a Stream
        using (Stream writer = request.GetRequestStream())
        {
            writer.Write(byteArray, 0, byteArray.Length);
    
            var response = (HttpWebResponse)request.GetResponse();
    
            Console.WriteLine(string.Format("Dataset {0}", response.StatusCode.ToString()));
    
            Console.ReadLine();
        }
    }
    #endregion
    

Následující krok vám ukáže, jak načíst datovou sadu pro přidání řádků do tabulky Power BI.The next step shows you how to get a dataset to add rows into a Power BI table.

Následuje úplný výpis kódu.Below is the complete code listing.

Úplný výpis kóduComplete code listing

using System;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System.Net;
using System.IO;

namespace walkthrough_push_data
{
    class Program
    {
        private static string token = string.Empty;

        static void Main(string[] args)
        {

            //Get an authentication access token
            token = GetToken();

            //Create a dataset in Power BI
            CreateDataset();

        }

        #region Get an authentication access token
        private static string GetToken()
        {
            // TODO: Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.21.301221612
            // and add using Microsoft.IdentityModel.Clients.ActiveDirectory

            //The client id that Azure AD created when you registered your client app.
            string clientID = "{Client_ID}";

            //RedirectUri you used when you register your app.
            //For a client app, a redirect uri gives Azure AD more details on the application that it will authenticate.
            // You can use this redirect uri for your client app
            string redirectUri = "https://login.live.com/oauth20_desktop.srf";

            //Resource Uri for Power BI API
            string resourceUri = "https://analysis.windows.net/powerbi/api";

            //OAuth2 authority Uri
            string authorityUri = "https://login.microsoftonline.com/common/";

            //Get access token:
            // To call a Power BI REST operation, create an instance of AuthenticationContext and call AcquireToken
            // AuthenticationContext is part of the Active Directory Authentication Library NuGet package
            // To install the Active Directory Authentication Library NuGet package in Visual Studio,
            //  run "Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory" from the nuget Package Manager Console.

            // AcquireToken will acquire an Azure access token
            // Call AcquireToken to get an Azure token from Azure Active Directory token issuance endpoint
            AuthenticationContext authContext = new AuthenticationContext(authorityUri);
            string token = authContext.AcquireToken(resourceUri, clientID, new Uri(redirectUri)).AccessToken;

            Console.WriteLine(token);
            Console.ReadLine();

            return token;
        }

        #endregion


        #region Create a dataset in Power BI
        private static void CreateDataset()
        {
            //TODO: Add using System.Net and using System.IO

            string powerBIDatasetsApiUrl = "https://api.powerbi.com/v1.0/myorg/datasets";
            //POST web request to create a dataset.
            //To create a Dataset in a group, use the Groups uri: https://api.PowerBI.com/v1.0/myorg/groups/{group_id}/datasets
            HttpWebRequest request = System.Net.WebRequest.Create(powerBIDatasetsApiUrl) as System.Net.HttpWebRequest;
            request.KeepAlive = true;
            request.Method = "POST";
            request.ContentLength = 0;
            request.ContentType = "application/json";

            //Add token to the request header
            request.Headers.Add("Authorization", String.Format("Bearer {0}", token));

            //Create dataset JSON for POST request
            string datasetJson = "{\"name\": \"SalesMarketing\", \"tables\": " +
                "[{\"name\": \"Product\", \"columns\": " +
                "[{ \"name\": \"ProductID\", \"dataType\": \"Int64\"}, " +
                "{ \"name\": \"Name\", \"dataType\": \"string\"}, " +
                "{ \"name\": \"Category\", \"dataType\": \"string\"}," +
                "{ \"name\": \"IsCompete\", \"dataType\": \"bool\"}," +
                "{ \"name\": \"ManufacturedOn\", \"dataType\": \"DateTime\"}" +
                "]}]}";

            //POST web request
            byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(datasetJson);
            request.ContentLength = byteArray.Length;

            //Write JSON byte[] into a Stream
            using (Stream writer = request.GetRequestStream())
            {
                writer.Write(byteArray, 0, byteArray.Length);

                var response = (HttpWebResponse)request.GetResponse();

                Console.WriteLine(string.Format("Dataset {0}", response.StatusCode.ToString()));

                Console.ReadLine();
            }
        }
        #endregion
    }
}

Další krok >Next Step >

Další krokyNext steps

Máte další otázky?More questions? Zkuste se zeptat v komunitě Power BI.Try the Power BI Community