セルフサービス最適化のユーザーのパーティション化
セルフサービス最適化ユーザー移行に使用可能な関数を使用し、一度に2000人を超えるユーザーを移行しないことをお薦めします。
2000を超えるセルフサービス・ユーザーを移行する必要がある場合、ユーザーをバッチにパーティション化する必要があります。 このタスクは、担当者パーティID値に基づいてユーザーをパーティション化する方法を示しています。 ユーザーはバッチにパーティション化され、バッチ内の最初の担当者および最後の担当者のパーティIDが示されます。 この移行方式は、ユーザーが移行されていないことを前提としています。 一部のユーザーがすでに移行されている場合も、このタスクは機能しますが、多数のユーザーがすでに移行されている場合、このパーティション化方法は期待どおりに動作しない可能性があります。
ノート: 次の問合せの実行方法の詳細は、カスタム問合せからのデータ・モデルの作成の項を参照してください。
まず、情報のみのために、次のクエリを使用してユーザーの合計数を調べます。
SELECT count(*)
FROM fusion.svc_self_service_roles
WHERE relationship_type_cd = 'ORA_CSS_USER'
AND delete_flag = 'N'
AND current_idp_cd != 'ORA_CSS_IDP_IDCS'
次に、DENSE_RANK分析関数を使用する次のクエリを使用して、ユーザーをバッチにパーティション化します。 この例ではバッチ・サイズは2000です。
SELECT
batch_num,
MIN(contact_party_id) first_contact_party_id,
MAX(contact_party_id) last_contact_party_id,
COUNT(*) batch_size
FROM
(
SELECT
contact_party_id,
floor((rank - 1) / 2000) batch_num
FROM
(
SELECT
DISTINCT contact_party_id,
DENSE_RANK() OVER(
ORDER BY
contact_party_id
) AS rank
FROM fusion.svc_self_service_roles
WHERE
relationship_type_cd = 'ORA_CSS_USER'
AND delete_flag = 'N'
AND current_idp_cd != 'ORA_CSS_IDP_IDCS'
ORDER BY contact_party_id
)
)
GROUP BY batch_num
ORDER BY batch_num
出力には、各バッチの最初と最後の担当者のパーティIDが表示されます