テーブル スキーマを編集する

この記事では、列の追加、名前変更、削除を行って、テーブルの名前を変更し、テーブルのスキーマを編集する方法について説明します。 参照先のオブジェクトとマッピングに対するテーブル スキーマの変更の影響と依存関係について概説します。

注意事項

  • 既存のインジェスト、インジェスト マッピング、更新ポリシー、関数、エクスポート、具体化されたビュー、およびその他の関連する操作は、テーブル スキーマの編集後に失敗する可能性があります。 依存関係を参照し、インジェスト マッピング、更新ポリシー、関数、エクスポート、具体化されたビューの実装を適宜編集してください。

依存関係

テーブル名またはテーブル列を参照する依存関係が原因で、テーブル スキーマを編集すると、インジェストとクエリの失敗が発生する可能性があります。 次の表は、スキーマ編集の影響を示しています。

スキーマの編集 依存関係
テーブルの名前変更 具体化されたビュー:
* 既定では、古いテーブル名を直接参照するすべての具体化されたビューが、トランザクション形式で新しい名前を指すように更新されます
* テーブル名がビュー クエリによって呼び出されたストアド関数から参照されている場合は、 .alter materialized-view を使用してマテリアライズド ビュー参照を手動で更新する必要があります。
列の名前変更 * 列の名前を変更すると、インジェスト マッピング内のすべての参照が自動的に更新されます。
* 列の名前を変更すると、マッピング内の既存の変換が保持されます。
列の追加 * 新しい列を追加しても、インジェスト マッピングは自動的に更新されません。 新しい列を含める場合は、マッピングを手動で更新する必要があります。
* スキーマを編集しても、インジェスト中のテーブル列への受信データのマッピングは更新されません。
* 列を追加した後は、データが正しく取り込まれるように マッピング を更新してください。
インジェスト マッピングの更新の詳細については、「.alter ingestion mapping コマンド」を参照してください。
列の種類 列の種類を変更するとデータが失われるので、[テーブル スキーマの編集] オプションを使用して列の種類を編集することはできません。
列の削除 * 列を削除すると、すべてのインジェスト マッピングから列が削除されます。
* 列の削除は元に戻せないので、データが失われます。 削除された列のデータに対してクエリを実行することはできません。
* 注意 列を削除して保存し、もう一度追加しても、データは復元されません。 これは新しい列として動作し、インジェスト マッピングは更新されません。 インジェスト マッピングを手動で更新する必要があります。

[前提条件]

テーブル名の変更

テーブルの名前を変更すると、インジェスト マッピング内のそのテーブルへのすべての参照が自動的に更新されます。 場合によっては、テーブルのマッピングと参照を手動で更新する必要があります。 テーブルの名前を変更する前に、依存関係を確認 してください。

  1. 目的の KQL データベースを参照し、[エクスプローラー] ウィンドウで [テーブル] を展開します。

  2. 一覧からテーブルを選択し、[ その他] メニュー [...] を開きます。

    [スキーマの編集] が強調表示されている [その他のテーブル] メニューのスクリーンショット。

  3. [ テーブル スキーマの編集] ウィンドウで、テーブル名を編集します。 必要に応じて、テーブルの説明を編集します。

    テーブル名フィールドが強調表示されているテーブル スキーマの編集のスクリーンショット。

  4. [ 依存関係 ] セクションで、参照されているオブジェクトを確認します。

    • 既定では、 具体化されたビューの自動更新 が有効になっています。 コマンド ビューアーでコマンドの更新を表示できます。

    • 必要に応じて、 具体化されたビューの自動更新を無効にします。 依存関係の影響を確認し、必要に応じてテーブル インジェスト マッピングを手動で更新してください。

    コマンドビューアーと依存関係セクションのスクリーンショット。<「具体化されたビューの自動更新」(Auto update Materialized views)トグルが強調表示されています。

  5. [ 更新] を選択し、確認ウィンドウでテーブル名をもう一度入力し、[ テーブル スキーマの編集] を選択します。

    テーブル名フィールドが強調表示されている確認ウィンドウのスクリーンショット。

テーブル列の編集

テーブルの名前を変更または列を追加すると、インジェスト マッピング内のそのテーブルへのすべての参照が自動的に更新されます。 場合によっては、テーブルのマッピングと参照を手動で更新する必要があります。 テーブル列を編集する前に、 依存関係を確認します。

  1. 目的の KQL データベースを参照します。 エクスプローラー ウィンドウで、[テーブル] を展開 します。

  2. 一覧からテーブルを選択し、[ その他] メニュー [...] を開きます。

    [スキーマの編集] が強調表示されている [その他のテーブル] メニューのスクリーンショット。

  3. 新しい列を追加するには、列の一覧の下部に列名を入力します。 列名は文字で始まる必要があり、数字、ピリオド、ハイフン、アンダースコアを含めることができます。

  4. 列のデータ型を選択します。 既定の列の種類は string ですが、[ 列の種類 ] フィールドのドロップダウン メニューで変更できます。

  5. [列の追加] を選択して、列をさらに追加します。

  6. [ 依存関係 ] セクションで、参照されているオブジェクトを確認します。

    • 既定では、 マッピングの自動更新 が有効になっています。 コマンド ビューアーでインジェスト マッピング コマンドの更新を表示できます。

    • 必要に応じて、[ マッピングの自動更新] を無効にします。 依存関係の影響を確認し、必要に応じてテーブル インジェスト マッピングを手動で更新してください。

    [依存関係] セクションで自動更新マッピングが有効になっているコマンド ビューアーのスクリーンショット。

  7. 必要に応じて、データ インジェスト マッピングを更新します。

列に対して大きな値を許容する

もしカラムで大きな値を取り込む予定がある場合は、そのカラムで大きな値のサポートを有効にすることができます。 スキーマ推論プロセスが1MBを超える値を識別した場合、システムは自動的に string 列および dynamic 列の大容量サポートを有効にします。

スキーマ推論プロセスで大きな値を特定できない場合は、既存の string や dynamic カラムに対して手動で大きな値サポートをオンにできます。 詳細は「 ラージメッセージサポート(プレビュー)」をご覧ください。

Note

この設定は今後取り込まれる新しいデータにのみ適用されます。 以前に取り込まれた string 値は制限まで切り詰められ(デフォルトポリシーの MaxValueSize プロパティは1MB)、 dynamic 値はnullに置き換えられます。 Large Message Support は、ショートカット(外部テーブル)および OneLake ショートカット経由のクエリ高速化が有効なテーブルではサポートされていません。 OneLakeのデータ利用可能性は、大きな値列を持つテーブルの対象サイズ制限に依存します。

  1. 目的の KQL データベースを参照します。 エクスプローラー ウィンドウで、[テーブル] を展開 します。

  2. リストからテーブルを選択し、「 More」メニュー で[...]「 スキーマ編集」を選択してください。

  3. 「 テーブルスキーマの編集 」ウィンドウで、大きな値が入っている列を選択し、「 大きな値を有効にする」をオンにします。

大きな値を有効にするオプションがハイライトされた編集テーブルスキーマウィンドウのスクリーンショットです。