Dataflow Gen2 データの格納先とマネージド設定
Dataflow Gen2 を使用してデータをクリーンして準備したら、データを格納先に格納します。 これは、Dataflow Gen2 のデータ格納先機能を使用して行うことができます。 この機能では、Azure SQL、Fabric Lakehouse など、さまざまな格納先から選択できます。 その後、Dataflow Gen2 はデータを格納先に書き込み、そこからデータを使用してさらに分析とレポートを行うことができます。
次の一覧に、サポートされているデータ格納先を示します。
- Azure SQL データベース
- Azure Data Explorer (Kusto)
- Fabric Lakehouse
- Fabric Warehouse
- Fabric KQL データベース
エントリ ポイント
Dataflow Gen2 内のすべてのデータ クエリには、データの格納先を含めることができます。 関数とリストはサポートされていません。表形式クエリにのみ適用できます。 各クエリのデータ格納先を個別に指定でき、データフロー内で複数の異なる格納先を使用できます。
データの格納先を指定する主要なエントリ ポイントには、次の 3 つがあります。
上部のリボンを使用します。
クエリ設定を使用します。
ダイアグラム ビューを使用します。
データ格納先に接続する
データ格納先への接続は、データ ソースへの接続と似ています。 データ ソースに対する適切なアクセス許可がある場合、データの読み取りと書き込みの両方に接続を使用できます。 新しい接続を作成するか、既存の接続を選択した後に、[次へ] を選択する必要があります。
新しいテーブルを作成するか、既存のテーブルを選択します。
データ格納先に読み込む際、新しいテーブルを作成するか、既存のテーブルを選択できます。
新しいテーブルの作成
新しいテーブルを作成する場合は、Dataflow Gen2 の更新中に、新しいテーブルがデータ格納先に作成されます。 その後格納先に手動で移動することでテーブルが削除された場合、データフローは次回のデータフローの更新中にテーブルを再作成します。
既定では、テーブル名の名前はクエリ名と同じです。 格納先でサポートされていない無効な文字がテーブル名に含まれている場合、テーブル名は自動的に調整されます。 たとえば、多くの格納先では、スペースや特殊文字がサポートされていません。
次に、格納先コンテナーを選択する必要があります。 いずれかの Fabric データ格納先を選択した場合は、ナビゲーターを使用して、データを読み込む Fabric アーティファクトを選択できます。 Azure の格納先の場合は、接続の作成時にデータベースを指定するか、ナビゲーターでデータベースを選択できます。
既存のテーブルの使用
既存のテーブルを選択するには、ナビゲーターの上部にあるトグルを使用します。 既存のテーブルを選択する場合は、ナビゲーターを使用して Fabric アーティファクト/データベースとテーブルの両方を選択する必要があります。
既存のテーブルを使用する場合、どのシナリオでもテーブルを再作成することはできません。 データ格納先からテーブルを手動で削除した場合、Dataflow Gen2 は次回の更新時にテーブルを再作成しません。
新しいテーブルのマネージド設定
新しいテーブルに読み込む場合、自動設定は既定でオンになっています。 自動設定を使用すると、Dataflow Gen2 によってマッピングが自動的に管理されます。 自動設定では、動作は次のようになります。
更新による置換方法: データは、データフローの更新ごとに置き換えられます。 格納先のデータはすべて削除されます。 格納先のデータは、データフローの出力データに置き換えられます。
マネージド マッピング: マッピングは管理されます。 データ/クエリを変更して別の列を追加したり、データ型を変更したりする必要がある場合、データフローを再発行すると、この変更に対応するマッピングが自動的に調整されます。 データフローに変更を加えるたびにデータ格納先エクスペリエンスに移動する必要はありません。これにより、データフローを再発行するときにスキーマを簡単に変更できます。
テーブルを削除して再作成する: これらのスキーマの変更を許可するために、すべてのデータフロー更新でテーブルが削除され、再作成されます。 データフローの更新により、以前にテーブルに追加されたリレーションシップまたはメジャーが削除される可能性があります。
Note
現在、自動設定は、データ格納先が Lakehouse および Azure SQL データベースの場合のみサポートされています。
手動設定
[自動設定の使用] をオフにすることで、データをデータ格納先に読み込む方法を完全に制御できます。 列マッピングを変更するには、ソースの種類を変更するか、データ格納先に不要な列を除外します。
更新方法
ほとんどの格納先では、更新方法として追加と置換の両方がサポートされています。 ただし、Fabric KQL データベースと Azure Data エクスプローラーでは、更新方法としての置換はサポートされていません。
置換: すべてのデータフロー更新で、データは格納先から削除され、データフローの出力データに置き換えられます。
追加: すべてのデータフロー更新で、データフローからの出力データがデータ格納先テーブルの既存のデータに追加されます。
発行時のスキーマ オプション
発行時のスキーマ オプションは、更新メソッドが置き換えられる場合にのみ適用されます。 データを追加する場合、スキーマを変更することはできません。
動的スキーマ: 動的スキーマを選択した場合、データフローを再発行するときに、データ格納先でスキーマの変更が可能です。 マネージド マッピングを使用していないため、クエリに変更を加えた場合でも、データフローの格納先フローの列マッピングを更新する必要があります。 データフローが更新されると、テーブルが削除されて再作成されます。 データフローの更新により、以前にテーブルに追加されたリレーションシップまたはメジャーが削除される可能性があります。
固定スキーマ: 固定スキーマを選択した場合、スキーマを変更することはできません。 データフローが更新されると、テーブル内の行のみが削除され、データフローからの出力データに置き換えられます。 テーブル上のリレーションシップやメジャーはいずれも、そのまま残ります。 データフロー内のクエリに変更を加えた場合、クエリ スキーマがデータ格納先スキーマと一致しないことを検出すると、データフローの発行は失敗します。 スキーマを変更したり、リレーションシップまたはメジャーを格納先テーブルに追加したりする予定がない場合は、この設定を使用します。
Note
ウェアハウスにデータを読み込む際、固定スキーマのみがサポートされます。
格納先ごとにサポートされているデータ ソースの種類
保存場所別のサポートされるデータ型 | DataflowStagingLakehouse | Azure DB (SQL) アウトプット | Azure Data Explorer アウトプット | Fabric Lakehouse (LH) アウトプット | Fabric Warehouse (WH) アウトプット |
---|---|---|---|---|---|
アクション | いいえ | 番号 | 番号 | 番号 | いいえ |
Any | いいえ | 番号 | 番号 | 番号 | いいえ |
Binary | いいえ | 番号 | 番号 | 番号 | 無効 |
通貨 | はい | イエス | イエス | はい | いいえ |
DateTimeZone | はい | イエス | はい | いいえ | いいえ |
Duration | いいえ | 番号 | 有効 | いいえ | いいえ |
機能 | いいえ | 番号 | 番号 | 番号 | 無効 |
なし | いいえ | 番号 | 番号 | 番号 | いいえ |
[Null] | いいえ | 番号 | 番号 | 番号 | いいえ |
時刻 | はい | はい | いいえ | 番号 | いいえ |
Type | いいえ | 番号 | 番号 | 番号 | いいえ |
構造化 (リスト、レコード、テーブル) | いいえ | 番号 | 番号 | 番号 | いいえ |
高度なトピック
格納先に読み込む前にステージングを使用する
クエリ処理のパフォーマンスを向上させるために、Dataflows Gen2 内でステージングを使用して、Fabric コンピューティングを使用してクエリを実行できます。
クエリでステージングが有効になっている場合 (既定の動作)、データはステージングの場所に読み込まれます。これは、データフロー自体のみがアクセスできる内部 Lakehouse です。
ステージングの場所を使用すると、クエリを SQL 分析エンドポイントにフォールディング処理する方がメモリ処理よりも高速な場合に、パフォーマンスが向上する可能性があります。
Lakehouse またはその他の非倉庫の格納先にデータを読み込む場合、既定ではステージング機能を無効にしてパフォーマンスを向上させます。 データをデータの格納先に読み込むと、データはステージングを使用せずにデータの宛先に直接書き込まれます。 クエリにステージングを使用する場合は、もう一度有効にすることができます。
ステージングを有効にするには、クエリを右クリックし、[ステージングを有効にする] ボタンを選択してステージングを有効にします。 その後、クエリが青に変わります。
ウェアハウスにデータを読み込む
ウェアハウスにデータを読み込む場合は、データ格納先への書き込み操作の前にステージングが必要です。 この要件により、パフォーマンスが向上します。 現在、データフローと同じワークスペースへの読み込みのみがサポートされています。 ウェアハウスに読み込まれるすべてのクエリに対してステージングが有効になっていることを確認します。
ステージングが無効になっているときに、出力先にウェアハウスを選択すると、データ格納先を構成する前に、まずステージングを有効にするよう警告が表示されます。
格納先に既にウェアハウスがあり、ステージングを無効にしようとすると、警告が表示されます。 その場合は格納先のウェアハウスを削除するか、ステージング アクションを無視します。
NULL 値の使用
null 許容列がある場合、Power Query によって null 非許容として検出される可能性があり、データ格納先に書き込むと、列の種類は null 非許容になります。 更新中に、次のエラーが発生します。
E104100 Couldn't refresh entity because of an issue with the mashup document MashupException.Error: DataFormat.Error: Error in replacing table's content with new data in a version: #{0}., InnerException: We can't insert null data into a non-nullable column., Underlying error: We can't insert null data into a non-nullable column. Details: Reason = DataFormat.Error;Message = We can't insert null data into a non-nullable column.; Message.Format = we can't insert null data into a non-nullable column.
null 許容列を強制するには、次の手順を試してください。
データ格納先からテーブルを削除します。
データフローからデータ格納先を削除します。
次の Power Query コードを使用して、データフローに移動し、データ型を更新します。
Table.TransformColumnTypes( #"PREVIOUS STEP", { {"COLLUMNNAME1", type nullable text}, {"COLLUMNNAME2", type nullable Int64.Type} } )
データ格納先の追加
データ型の変換とアップスケーリング
データフロー内のデータ型が、以下のデータ変換先でサポートされているものと異なる場合は、データ変換先でデータを取得できるように、以下のいくつかの既定の変換が用意されています。
宛先 | データフロー データ型 | 変換先のデータ型 |
---|---|---|
Fabric Warehouse | Int8. の種類 | Int16. の種類 |