注
このコネクタは 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 に接続する
データの取得
Power BI Desktop を開き、[ 他のソースからデータを取得する] を選択します。
検索ボックスに 「OneStream 」と入力して、カスタム OneStream コネクタを検索します。
OneStream を選択します。
[接続] を選択します。
コネクタを構成する
OneStream 環境の URL を入力します。 次のスクリーンショットに示すように、環境 URL が先頭 の https:// で入力されていることを確認します。 それ以外の場合、接続の試行が正しく機能しません。
[OK] を選択.
Authenticate
[ サインイン] を選択して認証プロセスを開始します。
この選択により、既定のブラウザーでログイン用の OneStream Identity Server がリダイレクトされ、開きます。
OneStream アカウントにログインします。
ログインに成功したら、[ 接続] を選択します。
OneStream ナビゲーター
ログインが成功すると、OneStream コネクタには、使用可能な 4 種類の呼び出しを含むナビゲーターが表示されます。
関数の構成に関するヘルプが必要な場合は、 ベスト プラクティス を参照してください。
使用する関数を選択したら、次の手順に従って データを読み込みます。
データの読み込み
要件に基づいて、指定された関数の値を指定します。 パラメーターを必要なものだけに切り替えたり、必要に応じてそのすべてを使用したりできます。 Power BI には、返されるテーブルのデータのプレビューが表示されます。
パラメーターを指定した後、データを読み込むか変換します。
- [ 読み込み ] を選択して、内部 Power BI Desktop データ モデルにテーブルを読み込みます。
- 内部 Power BI Desktop データ モデルに読み込む前にテーブルに変更を加える場合は、[ データの変換] を 選択します。 データを変換 すると、テーブルの代表的なビューが表示された新しいウィンドウで Power Query エディターが起動します。
追加のテーブルを読み込む必要がある場合は、関数の選択、値の指定、テーブルの読み込みまたは変換の前の手順を繰り返します。
Power BI Desktop データ モデルに読み込んだ後は、テーブル間のリレーションシップを作成し、レポートを作成できます。
OneStream カスタム コネクタの詳細
OneStream コネクタは、Representational State Transfer (REST) API を使用して OneStream インスタンスからデータをフェッチします。
OneStream コネクタは、現在ログインしているユーザーのアクセス許可境界の下ですべての API 呼び出しを実行するため、OneStream でユーザーに対して定義されたセキュリティを適用します。
注
コネクタは、Power BI レポート ユーザーの代わりに READ スコープのみを使用して、すべての操作を実行します。 OneStream コネクタは更新操作を実行できません。
OneStream コネクタには、呼び出しあたり 200 万行という制限があります。 この制限を超えてクエリを実行すると、エラーがトリガーされます。
Power BI レポートを Power BI サービスに発行する
Power BI Desktop の [ 発行 ] ボタンを選択して、データ、レポート、データ モデルをクラウドベースの Power BI サービスに発行します。
適切な Power BI ワークスペースを選択し、[選択] を 選択します。
発行が成功すると、Power BI サービスに移動するためのリンクを含む "成功" メッセージが表示されます。
リンクを選択すると、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 に設定できます。