次の方法で共有


OneStream

このコネクタは OneStream によって所有および提供されます。

概要

Item Description
リリース状況 一般提供
プロダクツ Power BI (データセット)
Power BI (データフロー)
Fabric (Dataflow Gen2)
サポートされている認証の種類 組織アカウント

[前提条件]

OneStream プラットフォーム バージョン 8.2 以降が必要です。 Microsoft Power BI Desktop をインストールする前に確認する 必要があるシステム要件 があります。

サポートされている機能

OneStream コネクタを使用すると、OneStream アプリケーションに安全にアクセスできます。 コネクタを使用すると、次のことができます。

  • OneStream アプリケーションから Power BI に直接キューブとリレーショナル データにアクセスします。
  • メタデータ メンバーとそのすべての OneStream プロパティにアクセスします。
  • Power BI で完全な階層構造を簡単に再作成できます。
  • Power BI サービスへのデータ読み込みを自動化する。

Power BI Desktop から OneStream に接続する

データの取得

  1. Power BI Desktop を開き、[ 他のソースからデータを取得する] を選択します。

    データの取得エクスペリエンスのスクリーンショット。

  2. 検索ボックスに 「OneStream 」と入力して、カスタム OneStream コネクタを検索します。

    検索ボックスに OneStream が入力された [データの取得] ダイアログのスクリーンショット。

  3. OneStream を選択します。

  4. [接続] を選択します。

コネクタを構成する

  1. OneStream 環境の URL を入力します。 次のスクリーンショットに示すように、環境 URL が先頭 の https:// で入力されていることを確認します。 それ以外の場合、接続の試行が正しく機能しません。

    環境 URL が入力されたコネクタ構成ダイアログのスクリーンショット。

  2. [OK] を選択.

Authenticate

  1. [ サインイン] を選択して認証プロセスを開始します。

  2. この選択により、既定のブラウザーでログイン用の OneStream Identity Server がリダイレクトされ、開きます。

  3. OneStream アカウントにログインします。

    OneStream ログイン ダイアログが表示された認証ダイアログのスクリーンショット。

  4. ログインに成功したら、[ 接続] を選択します。

    ユーザーがサインインした認証ダイアログのスクリーンショット。

OneStream ナビゲーター

ログインが成功すると、OneStream コネクタには、使用可能な 4 種類の呼び出しを含むナビゲーターが表示されます。

[ディメンションの取得] が選択されているナビゲーター ダイアログのスクリーンショット。

関数の構成に関するヘルプが必要な場合は、 ベスト プラクティス を参照してください。

使用する関数を選択したら、次の手順に従って データを読み込みます

データの読み込み

  1. 要件に基づいて、指定された関数の値を指定します。 パラメーターを必要なものだけに切り替えたり、必要に応じてそのすべてを使用したりできます。 Power BI には、返されるテーブルのデータのプレビューが表示されます。

  2. パラメーターを指定した後、データを読み込むか変換します。

    • [ 読み込み ] を選択して、内部 Power BI Desktop データ モデルにテーブルを読み込みます。
    • 内部 Power BI Desktop データ モデルに読み込む前にテーブルに変更を加える場合は、[ データの変換] を 選択します。 データを変換 すると、テーブルの代表的なビューが表示された新しいウィンドウで Power Query エディターが起動します。
  3. 追加のテーブルを読み込む必要がある場合は、関数の選択、値の指定、テーブルの読み込みまたは変換の前の手順を繰り返します。

  4. Power BI Desktop データ モデルに読み込んだ後は、テーブル間のリレーションシップを作成し、レポートを作成できます。

OneStream カスタム コネクタの詳細

OneStream コネクタは、Representational State Transfer (REST) API を使用して OneStream インスタンスからデータをフェッチします。

OneStream コネクタは、現在ログインしているユーザーのアクセス許可境界の下ですべての API 呼び出しを実行するため、OneStream でユーザーに対して定義されたセキュリティを適用します。

コネクタは、Power BI レポート ユーザーの代わりに READ スコープのみを使用して、すべての操作を実行します。 OneStream コネクタは更新操作を実行できません。

OneStream コネクタには、呼び出しあたり 200 万行という制限があります。 この制限を超えてクエリを実行すると、エラーがトリガーされます。

Power BI レポートを Power BI サービスに発行する

  1. Power BI Desktop の [ 発行 ] ボタンを選択して、データ、レポート、データ モデルをクラウドベースの Power BI サービスに発行します。

  2. 適切な Power BI ワークスペースを選択し、[選択] を 選択します

    [発行] ボタン、ワークスペース、および [発行の選択] ボタンが強調されている Power BI Desktop のスクリーンショット。

  3. 発行が成功すると、Power BI サービスに移動するためのリンクを含む "成功" メッセージが表示されます。

    成功メッセージと強調されたリンクを含む [Power BI への発行] ダイアログのスクリーンショット。

  4. リンクを選択すると、Power BI サービスの Power BI Desktop からのすべてのレポートが表示され、Power BI サービスにダッシュボードが作成されます。

    更新アイコンが強調されたサービスの更新データ モデルのスクリーンショット。

ベストプラクティスならびに機能のガイドを提供します

一般的なベスト プラクティス

  • 必要な粒度のデータのみを読み込みます。 つまり、月レベルの集計データのみが必要な場合は、毎日のレベルでデータを読み込むことはありません。 モデルが小さいほど、常にパフォーマンスが高くなります。

  • 作成する変換の数を制限します。 クエリを複雑にするほど、クエリが失敗する可能性が高くなります。

  • OneStream の財務ロジックとキューブ ビュー/データ アダプターを利用して、Power BI に読み込まれるテーブルを作成します。

    例: 統合には、親エンティティが子エンティティのいずれかの値のうち 40% のみを受け取る必要があります。 このロジックが OneStream で実行されていることを確認し、値が既に設定されている Power BI にデータ アダプターを読み込みます。

    Power BI でロジックをレプリケートしようとすると、非常に非効率的になり、ソース システムでより適切に実行されます。

カスタム M クエリでループを使用して大規模なデータセットを読み込む

行の上限が原因で失敗する可能性のある大量のデータを読み込む場合は、Power BI でカスタム クエリを直接作成してディメンションをループし、クエリを複数のクエリに分割し、Power BI でクエリ結果から直接データを結合することをお勧めします。

次のクエリ例では、CubeViewMD データ アダプターの取得を複数回実行します。 3 つの主要コンポーネントは次のとおりです。

  • GetCubeViewColumns: 読み込もうとしている指定したアダプターのすべての列の一覧を返します。 列は、動的に解析する必要がないように手動で設定されます。これはコストがかかります (追加のクエリ実行が 1 つ必要)。

  • GetEntities: メソッド - メンバーとして構成された DataAdapter を実行し、次の図を参照して、ディメンション(この場合はエンティティ)に必要なすべてのメンバーを取得します。 これを変更して、必要なディメンション/メンバー スクリプトをループすることができます。

    メンバー データ アダプター構成のセットアップのスクリーンショット。

  • GetCubeViewData: CubeViewMD アダプターを実行します。 CubeView には、ループ時に GetEntities の値を渡すために使用される pbi_param_entity というパラメーターが含まれています。

カスタム クエリでこのコードを使用して、ディメンションの指定されたメンバー スクリプトをループ処理して選択したデータ アダプターを実行できます。

let
   GetCubeViewColumns = () as list =>
      let 
            Source = {"Cube","Entity","Parent","Cons","Scenario","Time","StartDate","EndDate","View","Account","Flow","Origin","IC","UD1","UD2","UD3","UD4","UD5","UD6","UD7","UD8","CalcScript","Amount"}
      in
            Source,

   GetEmptyTable = () as table =>
      let
            Source = #table(
               GetCubeViewColumns(),
               {
               }
            )
      in 
            Source,

   GetEntities = () as table =>
      let
            Source = OneStream.Navigation("https://your-environment.onestreamcloud.com"),
            YourApp = Source{[Key="YourApp"]}[Data],
            YourCube = YourApp{[Key="YourCube"]}[Data],
            #"Get Custom Adapter" = YourCube{[Key="Get Custom Adapter"]}[Data],
            MemberList = #"Get Custom Adapter"("zzz_PBI_EntityMembers", "Default", null, null),
            MemberListNoDuplicates = Table.Distinct(#"Invoked FunctionGet Custom Adapter1", {"MemberId"}),
            MemberListNamesOnly = Table.RemoveColumns(MemberListNoDuplicates,{"DimTypeId", "DimId", "MemberId", "Description", "SupportsChildren", "IndentLevel"})
      in
            MemberListNamesOnly,


   GetCubeViewData = (EntityName) as table =>
      let
            Source = OneStream.Navigation("https://your-environment.onestreamcloud.com"),
            YourApp = Source{[Key="YourApp"]}[Data],
            YourCube = YourApp{[Key="YourCube"]}[Data],
            #"Get Custom Adapter" = YourCube{[Key="Get Custom Adapter"]}[Data],
            CubeView = try #"Get Custom Adapter"("zzz_PBI_CubeViewAdapter", "Default", null, "pbi_param_entity="& EntityName),
            CubeViewOrDefault = if CubeView[HasError] then GetEmptyTable() else CubeView[Value]
      in
            CubeViewOrDefault,

   List = GetCubeViewColumns(),
   Source = GetEntities(),
   Data = Table.AddColumn(Source, "LoopCubeViewData", each GetCubeViewData([Name])),
   Expand = Table.ExpandTableColumn(Data, "LoopCubeViewData", List),
   Rows = Table.SelectRows(Expand, each [Cube] <> null)
in
   Rows

キューブを取得する

この関数は、OneStream キューブからデータを取得します。

  • すべてのパラメーターは、単一のメンバーを必要とする View と Currency を除き、OneStream メンバー スクリプト (2023.Base for time など) を使用して指定できます。
  • 通貨は OneStream の連結ディメンションを参照するため、たとえばローカルまたは集計を使用できます。

[キューブ データの取得] 関数が強調された [ナビゲーター] ダイアログのスクリーンショット。

カスタム アダプターを取得する

  • ワークスペースとアダプター名 (必須パラメーター) を指定します。
  • テーブル名とパラメーターは省略可能です。
  • OneStream 内の構成済みのダッシュボード アダプターを参照して、正しい値を挿入していることを確認します。

[カスタム アダプター データの取得] 機能が強調されている [ナビゲーター] ダイアログのスクリーンショット。

ディメンションの取得とメンバー プロパティの取得

  • 取得する OneStream ディメンションの種類を指定します。
  • シナリオの種類を指定します。 選択したキューブの既定のディメンションを使用し、既定のプロパティを取得するには、[既定値] または [すべて] を使用します。
  • [説明を含める] を True または False に設定できます。

ディメンションの取得関数が強調されているナビゲーター ダイアログのスクリーンショット。