XML形式でExportしたレコードのimport時の確認点

kawaharah
Tera Contributor

ローカルでテーブルのレコード管理をしたく、XML形式でのエクスポートを考えております。

緊急時にはエクスポートしたXMLファイルをインポートして使用したいのですがこの際注意点や確認点などありますでしょうか?

1 件の受理された解決策

senon
Tera Sage

こんにちは、個人的に注意している観点をまとめますね。

 

  1. データの一貫性と範囲の確認
    • XMLエクスポートは指定したテーブルやレコードを対象に行われますの、エクスポートする前に、対象レコードが正しいか(フィルタ条件やクエリが適切か)を確認し、意図しないレコードが含まれていたり、必要なレコードが漏れていないかを確認してます。

    • 関連テーブル(リファレンスフィールドなど)もバックアップの対象に含まれる場合、それらのデータも必要に応じてエクスポートします。

  2. データ量とパフォーマンス
    •  大量のレコード(数十万件くらい)をエクスポートする場合、システム負荷や処理時間が増大します。必要に応じてレコード数を絞り込んで、複数回に分けてます。

    • そもそもXMLでエクスポートする上限がプロパティで決まっている(デフォルト10000行)ので、それを超える場合は↑と加味して、プロパティ値を変更します。

  3. 更新セットとの混同しないように
    • 更新セットの拡張子も同じxmlなので、初めて扱う人だとどっちがどっちか分からなくなります。エクスポートしたあとの名称は分かりやすい名前にしてます。

  4. インポート時の注意
    • インポート時に既存レコードと重複する可能性があります。ServiceNowでは「sys_id」がレコードのユニーク識別子となるため、同じsys_idが存在する場合、上書きされます。その場合はエクスポートした時点での値になるので、意図しない上書きを防ぐため、インポート前に既存データを確認するか、大量のデータでチェックしきれない場合は開発環境で試しています。

    • リファレンスフィールド(例: ユーザーやグループを参照するフィールド)が含まれる場合、参照先のレコードがインポート先の環境に存在しないと上手く値が参照されません。必要な参照データの存在を確認しておきます。

 

こんな感じでしょうか。

元の投稿で解決策を見る

1件の返信1

senon
Tera Sage

こんにちは、個人的に注意している観点をまとめますね。

 

  1. データの一貫性と範囲の確認
    • XMLエクスポートは指定したテーブルやレコードを対象に行われますの、エクスポートする前に、対象レコードが正しいか(フィルタ条件やクエリが適切か)を確認し、意図しないレコードが含まれていたり、必要なレコードが漏れていないかを確認してます。

    • 関連テーブル(リファレンスフィールドなど)もバックアップの対象に含まれる場合、それらのデータも必要に応じてエクスポートします。

  2. データ量とパフォーマンス
    •  大量のレコード(数十万件くらい)をエクスポートする場合、システム負荷や処理時間が増大します。必要に応じてレコード数を絞り込んで、複数回に分けてます。

    • そもそもXMLでエクスポートする上限がプロパティで決まっている(デフォルト10000行)ので、それを超える場合は↑と加味して、プロパティ値を変更します。

  3. 更新セットとの混同しないように
    • 更新セットの拡張子も同じxmlなので、初めて扱う人だとどっちがどっちか分からなくなります。エクスポートしたあとの名称は分かりやすい名前にしてます。

  4. インポート時の注意
    • インポート時に既存レコードと重複する可能性があります。ServiceNowでは「sys_id」がレコードのユニーク識別子となるため、同じsys_idが存在する場合、上書きされます。その場合はエクスポートした時点での値になるので、意図しない上書きを防ぐため、インポート前に既存データを確認するか、大量のデータでチェックしきれない場合は開発環境で試しています。

    • リファレンスフィールド(例: ユーザーやグループを参照するフィールド)が含まれる場合、参照先のレコードがインポート先の環境に存在しないと上手く値が参照されません。必要な参照データの存在を確認しておきます。

 

こんな感じでしょうか。