次の方法で共有


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 serviceへのデータ読み込みを自動化します。

Power BI Desktop から OneStream に接続する

データの取得

  1. Power BIデスクトップを開き、他のソースからデータを取得を選択します。

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

  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. パラメーターを指定した後、データを読み込むか変換します。

    • Load を選択して、内部Power BIデスクトップ データ モデルにテーブルを読み込みます。
    • Transform data を選択してテーブルを変更してから、内部Power BI Desktop データ モデルに読み込みます。 Transform data は、テーブルの代表的なビューを含む新しいウィンドウで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 の Publish ボタンを選択して、データ、レポート、データ モデルをクラウドベースのPower BI serviceに発行します。

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

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

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

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

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

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

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

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

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

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

  • 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 に設定できます。

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