인스턴스에 AML AI 데이터 세트를 만들려면 해당 Google Cloud 프로젝트 내에서 BigQuery에 데이터를 스테이징해야 합니다. 다음 섹션에서는 이러한 데이터 세트와 테이블을 준비하는 한 가지 방법을 보여줍니다.
BigQuery 출력 데이터 세트 만들기
다음 명령어를 실행하여 파이프라인 출력을 BigQuery로 보내는 데 사용할 데이터 세트를 만듭니다. 다음 명령어에서 문자(대문자 또는 소문자), 숫자, 밑줄만 포함하는 BQ_OUTPUT_DATASET_NAME 이름을 선택합니다. 하이픈을 사용할 수 없습니다.
bash
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_OUTPUT_DATASET_NAME
powershell
bq mk `
--location=LOCATION `
--project_id=PROJECT_ID `
BQ_OUTPUT_DATASET_NAME
AML AI 출력을 보려면 AML 출력 데이터 모델을 참조하세요.
BigQuery 입력 데이터 세트 만들기
BigQuery 입력 데이터 세트를 만듭니다. 나중에 이 데이터 세트에 금융 기관의 트랜잭션 데이터를 입력합니다.
gcloud
bq mk \
--location=LOCATION \
--project_id=PROJECT_ID \
BQ_INPUT_DATASET_NAME
Powershell
bq mk `
--location=LOCATION `
--project_id=PROJECT_ID `
BQ_INPUT_DATASET_NAME
BigQuery 입력 데이터 세트 테이블 만들기 및 트랜잭션 데이터 업로드
다음 형식으로 AML 입력 데이터 모델 스키마가 제공됩니다.
- 모든 테이블이 포함된 단일 CSV 파일
aml-input-data-model.csv
- 모든 테이블이 포함된 단일 JSON 파일
aml-input-data-model.json
- 각 테이블의 개별 JSON 파일:
JSON 형식으로 당사자 등록 테이블이 제공됩니다. 나중에 예측 결과를 만들기 위해 당사자를 등록할 때 이 테이블을 사용합니다.
각 테이블의 JSON 파일을 다운로드하고 이를 사용해서 스키마를 적용하여 연결된 BigQuery 테이블을 만들려면 다음 명령어를 실행합니다.
for table in party_registration party account_party_link transaction risk_case_event party_supplementary_data
do
curl -O "https://cloud.google.com/financial-services/anti-money-laundering/docs/reference/schemas/${table}.json"
bq mk --table --project_id PROJECT_ID BQ_INPUT_DATASET_NAME.$table $table.json
done
금융 기관의 트랜잭션 데이터를 데이터 세트 테이블에 업로드합니다. 자세한 내용은 BigQuery 빠른 시작을 참조하세요.
BigQuery 데이터 세트에 액세스 권한 부여
API는 프로젝트에 서비스 계정을 자동으로 만듭니다. 서비스 계정에는 BigQuery 입력 및 출력 데이터 세트에 대한 액세스 권한이 필요합니다.
PROJECT_NUMBER에는 PROJECT_ID와 연결된 프로젝트 번호를 사용합니다. IAM 설정 페이지에서 프로젝트 번호를 찾을 수 있습니다.
- 개발 머신에
jq
를 설치합니다. 개발 머신에jq
를 설치할 수 없으면 Cloud Shell을 사용하거나, BigQuery 문서에 있는 리소스에 대한 액세스 권한을 부여하는 다른 방법 중 하나를 사용할 수 있습니다. 다음 명령어를 실행하여 입력 데이터 세트 및 해당 테이블에 대한 읽기 액세스 권한을 부여합니다.
# The BigQuery input dataset name. You created this dataset and # uploaded the financial data into it in a previous step. This dataset should be # stored in the Google Cloud project. export BQ_INPUT_DATASET_NAME="BQ_INPUT_DATASET_NAME" # The BigQuery tables in the input dataset. These tables should # be part of the same project as the intended instance. # Make sure to replace each table variable with the appropriate table name. export PARTY_TABLE="PARTY_TABLE" export ACCOUNT_PARTY_LINK_TABLE="ACCOUNT_PARTY_LINK_TABLE" export TRANSACTION_TABLE="TRANSACTION_TABLE" export RISK_CASE_EVENT_TABLE="RISK_CASE_EVENT_TABLE" # Optional table export PARTY_SUPPLEMENTARY_DATA_TABLE="PARTY_SUPPLEMENTARY_DATA_TABLE" # Registered parties table export PARTY_REGISTRATION_TABLE="PARTY_REGISTRATION_TABLE" # Grant the API read access to the BigQuery dataset. # Update the current access permissions on the BigQuery dataset and store in a temp file. # Note: This step requires jq as a dependency. # If jq is not available, the file /tmp/mydataset.json may be created manually. bq show --format=prettyjson "PROJECT_ID:BQ_INPUT_DATASET_NAME" | jq '.access+=[{"role":"READER","userByEmail":"service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" }]'> /tmp/mydataset.json # Update the BigQuery dataset access permissions using the temp file. bq update --source /tmp/mydataset.json "PROJECT_ID:BQ_INPUT_DATASET_NAME" # Grant the API read access to the BigQuery table if the table is provided. for TABLE in $PARTY_TABLE $TRANSACTION_TABLE $ACCOUNT_PARTY_LINK_TABLE $RISK_CASE_EVENT_TABLE $PARTY_SUPPLEMENTARY_DATA_TABLE $PARTY_REGISTRATION_TABLE; do [ -n TABLE ] && bq add-iam-policy-binding \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" --role="roles/bigquery.dataViewer" \ PROJECT_ID:BQ_INPUT_DATASET_NAME.${TABLE} done
다음 명령어를 실행하여 출력 데이터 세트에 대한 쓰기 액세스 권한을 부여합니다.
# Note: This step requires jq as a dependency. # If jq isn't available, the file /tmp/mydataset.json may be created manually. bq show --format=prettyjson PROJECT_ID:BQ_OUTPUT_DATASET_NAME | jq '.access+=[{"role":"roles/bigquery.dataEditor","userByEmail":"service-PROJECT_NUMBER@gcp-sa-financialservices.iam.gserviceaccount.com" }]'> /tmp/perms.json bq update --source /tmp/perms.json PROJECT_ID:BQ_OUTPUT_DATASET_NAME