Centrality Statement 사용 시 발생하는 메모리 오류 Centrality

Download Report

Transcript Centrality Statement 사용 시 발생하는 메모리 오류 Centrality

Centrality Statement 사용 시 발생하는 메모리 오류

Centrality Statement 사용 시 발생하는 메모리 오류 현상

Centrality에 측정에 데이터 사이즈가 큰 Link 정보, Node 정보를 사용하여 프로그램 실행하면 메모리 부족 오류가 발생할 수 있습니다.

프로그램 실행 결과 예시 (로그) 프로그램 코드 예시 proc optgraph data_links = work.linksetout(keep = from_label to_label) data_nodes = work.nodesetout

out_nodes = work.central

graph_direction = directed graph_internal_format = thin loglevel = 2; centrality degree = both close = weight by_cluster = yes; run;

  Community Detection을 통한 Linkset, Nodeset 정보를 이용 Centrality Statement를 이용하여 실행   메모리 오류 메시지 발생 입력 데이터인 Linkset, Nodeset의 데이터 사이즈가 큰 것이 메모리 부족 오류 발생 원인 (※ 샘플 코드 실행 시) •

Community 개수: 약 100만 개

Node 개수: 약 43만 개

Link 개수: 약 33만 개

Centrality Statement 사용 시 발생하는 메모리 오류

Centrality Statement 사용 시 발생하는 메모리 오류 해결 방법 – 데이터 분리

메모리 오류를 해결하기 위해서는 Centrality를 측정하기 위한 커뮤니티 정보를 Partitioning하여 고객 Link 정보와 Join 합니다. 즉 커뮤니티 데이터셋의 전화번호와 고객 Link 데이터셋의 전화번호가 일치하는 데이터를 발신 번호와 수신 번호에서 각각 추출합니다.

전화번호 및 커뮤니티 정보 고객 Link 정보 전화번호 및 커뮤니티 정보 데이터 전화 번호 전화번호 및 커뮤니티 정보 데이터 전화 번호 고객 Link 정보 발신 번호 고객 Link 정보 수신 번호 데이터 데이터 노드 ID

0 23123 6519 42315 35329 123123

전화번호

NFL-09283 NBA-12349 NFL-32142 MSL-09853 NHL-12384 MLB-87521

커뮤니티 ID

1 100000 100001 200000 200001 300000

발신 ID 수신 ID 발신 번호

NFL-32142 PGA-54321 NFL-09283 NHL-12384 NBA-12349 PGA-54321 ABC-91735 SKJ-87298 CMG-82637 OMG-12371

수신 번호

SDA-32141 PGA-54321 PGA-54321 POH-17254 UHD-18736 OIU-17254 NFL-09283 OIQ-12397 NBA-12349 PGA-54321 UTD-12352 DBC-12865  323048 PGA-54321 1000000 데이터 Partition 방법 (

샘플 코드 참조

) 1.

2.

커뮤니티 사이즈 선정 (예: 10만개 단위) 0 ~ 10만 번 까지의 커뮤니티에 해당하는 전화번호를 고객 Link 데이터로부터 추출 3.

PLS-12397 • 발신 번호와 수신 번호 별도 추출 반드시 커뮤니티에 포함되어 있는 전화번호만 추출 (e.g.: 5번 커뮤니티 고객 -> 200005번 커뮤니티 고객 정보는 삭제) OIQ-12351

Centrality Statement 사용 시 발생하는 메모리 오류

Centrality 분석 Tip – 커뮤니티가 100만개 만들어졌을 경우 (※ 샘플 코드 확인)

메모리 부족 오류를 피하기 위해서 Centrality는 커뮤니티 정보를 N개로 Partitioning 하여 측정합니다. N개로 분리 시킨 경우 100만/N 번의 Centrality 측정 작업을 동일하게 수행해야 합니다.

1.

2.

3.

4.

5.

6.

100만 개 커뮤니티 생성 시

N 개 단위로 분리

(N 단위는 분석에 필요한 만큼 나누어 사용)   E.g.) 10만 개로 데이터를 분리할 경우 10번 반복 작업 수행 반복 작업을 수행하기 위해

MACRO

를 이용 가능 (※ 필수 사항 아님) 추출된 데이터 중

Node_ID, FROM_ID, TO_ID

정보 제거  ID에 포함된 가장 큰 수가 메모리로 할당되기 때문  E.g.) Node_ID: 추출한 Node_ID 중 Max값이 50만 일 경우, SAS는 50개의 데이터로 인식 Centrality 옵션을 사용하여 중심성과 관련된 Index 도출(degree, closeness, influence 등) 커뮤니티 측정 10번 반복 (1 ~ 100000, 100001 ~ 200000, …, 900001 ~ 1000000) 커뮤니티 별 측정된 Index 정보를 결합 (e.g: 샘플 코드의 Work.Central을 10개 결합 시킴) 커뮤니티 별 Role Assignment

* 5, 6 번 순서가 변경되어도 무방