로컬로 트랜스코딩된 메인프레임 데이터를 Google Cloud으로 이동

이 페이지에서는 메인프레임에서 로컬로 메인프레임 데이터를 지원되는 형식으로 트랜스코딩한 후 콘텐츠를 Google Cloud로 이동하는 방법을 설명합니다.

시작하기 전에

프로시져 라이브러리(PROCLIB)로 사용할 메인프레임으로 파티션을 나눈 데이터 세트에 Mainframe Connector를 설치합니다.

qsam 및 vsam 명령어

트랜스코딩은 한 가지 형식의 코딩된 표현에서 다른 형식으로 정보를 변환하는 프로세스입니다. Mainframe Connector는 메인프레임에서 로컬로 데이터를 트랜스코딩하는 qsam 및 vsam 명령어를 제공합니다.

qsam decode 및 vsam decode 명령어는 COBOL 카피북을 사용하여 메인프레임 데이터 세트의 레코드를 ORC, CSV, JSONL 또는 AVRO와 같은 파일 형식으로 변환하고 출력을 로컬 또는 Cloud Storage 버킷에 씁니다. 예를 들어 EBCDIC로 인코딩된 QSAM 데이터 세트를 UTF-8 ORC 파일로 변환할 수 있습니다. 지원되는 모든 출력 형식은 TranscodeFormat를 참조하세요.

qsam encode 명령어는 반대로 CSV, JSONL, ORC, AVRO 데이터 또는 BigQuery 쿼리 결과를 QSAM 데이터 세트로 변환합니다. 지원되는 모든 입력 형식은 TranscodeInputFormat를 참조하세요.

이러한 명령어는 다음 기능을 제공합니다.

  • OCCURS 절 (목록), REDEFINES 절, 중첩 레코드를 포함한 복합 데이터 유형 지원 이러한 데이터 유형에 대한 자세한 내용은 qsam 및 vsam 트랜스코딩 참조를 확인하세요.
  • 트랜스코더 구성 파일을 통한 트랜스코딩 프로세스 구성 지원 이 기능을 사용하면 데이터를 Google Cloud로 디코딩하고 데이터를 다시 메인프레임으로 인코딩할 때 유연성이 향상됩니다.
  • 오류 검사에 사용할 수 있는 트랜스코딩 오류 테이블인 스필오버 데이터 세트를 만들 수 있습니다.
  • 여러 입력 및 출력 형식 지원 이 기능을 사용하면 다양한 데이터 웨어하우스에서 데이터를 로드할 수 있습니다.

메인프레임 데이터를 로컬에서 트랜스코딩하고 Google Cloud로 이동

Mainframe Connector를 사용하면 메인프레임에서 로컬로 데이터를 트랜스코딩한 후 Cloud Storage로 이동할 수 있습니다. 다음 단계를 따르세요.

  1. 메인프레임에서 데이터 세트를 읽고 ORC 형식으로 트랜스코딩하는 작업을 만듭니다. INFILE 데이터 세트에서 데이터를 읽고 COPYBOOK DD의 레코드 레이아웃을 읽습니다.

    --transcode-configuration 인수를 사용하여 트랜스코더 구성 파일을 제공하면 Mainframe Connector 트랜스코딩 프로세스의 기본 동작을 수정할 수 있습니다.

    • 입력 데이터 세트가 레코드 길이가 고정되었거나 가변적인 큐에 추가된 순차 액세스 메서드 (QSAM) 파일인 경우 다음 명령어를 사용합니다.

      //STEP01 EXEC BQSH
      //INFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR
      //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.CPY
      //CONFIG DD DISP=SHR,DSN=<HLQ>.CONFIG.SETTINGS
      //STDIN DD *
      BUCKET=BUCKET_NAME
      qsam decode --copybook dd:COPYBOOK --transcode-configuration dd:CONFIG dd:INFILE gs://$BUCKET/tablename
      /*
      
    • 입력 데이터 세트가 레코드 길이가 고정되었거나 가변적인 가상 스토리지 액세스 메서드 (VSAM) 파일인 경우 다음 명령어를 사용합니다.

      //STEP01 EXEC BQSH
      //INFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR
      //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.CPY
      //CONFIG DD DISP=SHR,DSN=<HLQ>.CONFIG.SETTINGS
      //STDIN DD *
      BUCKET=BUCKET_NAME
      vsam decode --copybook dd:COPYBOOK --transcode-configuration dd:CONFIG dd:INFILE gs://$BUCKET/tablename
      /*
      

      BUCKET_NAME을 메인프레임 데이터를 복사할 Cloud Storage 버킷의 이름으로 바꿉니다.

    이 예시에서는 DD DataPath를 사용하여 카피북, 입력, 트랜스코딩 구성의 경로를 지정합니다. 다른 옵션은 DataPath을 참고하세요.

    각 작업 제어 언어 (JCL) 프로시져에서 프로젝트 ID 및 버킷 이름과 같은 변수를 지정하지 않으려면 BQSH PROCLIB에서 추가하고 여러 JCL 프로시져에서 환경 변수로 참조할 수 있습니다. 또한 이 접근 방식은 환경별 변수가 환경의 BQSH PROCLIB에 설정되므로 프로덕션 환경과 비프로덕션 환경 간의 전환을 간소화합니다.

    이 프로세스 중에 실행된 명령어를 로깅하려면 로드 통계를 사용 설정하면 됩니다.

  2. 트랜스코딩된 파일을 BigQuery에 로드하는 BigQuery 로드 작업을 만들고 제출합니다. 예를 들어 데이터를 ORC 형식으로 트랜스코딩한 경우 다음과 같이 tablename.orc에서 MY_DATASET.MY_TABLE로 ORC 파일 파티션을 로드할 수 있습니다.

    Example JCL
    //STEP02 EXEC BQSH
    //STDIN DD *
    BUCKET=BUCKET_NAME
    PROJECT=PROJECT_NAME
    bq load --project_id=$PROJECT \
      myproject:MY_DATASET.MY_TABLE \
      gs://$BUCKET/tablename.orc/*
    /*
    

    다음을 바꿉니다.

    • BUCKET_NAME: BigQuery에 로드할 ORC 파일이 포함된 Cloud Storage 버킷의 이름입니다.
    • PROJECT_NAME: 쿼리를 실행할 프로젝트의 이름입니다.
  3. 선택사항: QUERY DD 파일에서 SQL 읽기를 실행하는 BigQuery 쿼리 작업을 만들고 제출합니다. 일반적으로 쿼리는 BigQuery 테이블을 변환하는 MERGE 또는 SELECT INTO DML 문이 됩니다. Mainframe Connector는 작업 측정항목을 로깅하지만 쿼리 결과를 파일에 쓰지 않습니다.

    DD를 사용하는 별도의 데이터 세트 또는 DSN를 사용하는 별도의 데이터 세트를 사용하는 등 다양한 방법으로 BigQuery를 인라인으로 쿼리할 수 있습니다.

    Example JCL
    //STEP03 EXEC BQSH
    //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR
    //STDIN DD *
    PROJECT=PROJECT_NAME
    LOCATION=LOCATION
    bq query --project_id=$PROJECT \
    --location=$LOCATION/*
    /*
    

    다음을 바꿉니다.

    • PROJECT_NAME: 쿼리를 실행할 프로젝트의 이름입니다.
    • LOCATION: 쿼리가 실행될 위치입니다. 데이터와 가까운 위치에서 쿼리를 실행하는 것이 좋습니다.
  4. (선택사항) QUERY DD 파일에서 SQL 읽기를 실행하고, 결과 데이터 세트를 메인프레임에 바이너리 파일로 내보내는 내보내기 작업을 만들고 제출합니다.

    //STEP04 EXEC BQSH
    //OUTFILE DD DSN=<HLQ>.DATA.FILENAME,DISP=SHR
    //COPYBOOK DD DISP=SHR,DSN=<HLQ>.COPYBOOK.CPY
    //CONFIG DD DISP=SHR,DSN=<HLQ>.CONFIG.SETTINGS
    //QUERY DD DSN=<HLQ>.QUERY.FILENAME,DISP=SHR
    //STDIN DD *
    
    PROJECT=PROJECT_NAME
    qsam encode \
      dd:QUERY
      dd:OUTFILE
      --copybook dd:COPYBOOK
      --transcode-configuration dd:CONFIG
      --input-format=BIGQUERY \
      --input-parameter project_id=PROJECT_NAME \
      --input-parameter location=LOCATION/*
    /*
    

    다음을 바꿉니다.

    • PROJECT_NAME: 쿼리를 실행할 프로젝트의 이름입니다.
    • LOCATION: 쿼리가 실행될 위치입니다. 데이터와 가까운 위치에서 쿼리를 실행하는 것이 좋습니다.

    --transcode-configuration 인수를 사용하여 트랜스코더 구성 파일을 제공하여 Mainframe Connector 트랜스코딩 프로세스의 기본 동작을 수정할 수 있습니다.

    데이터를 OUTFILE DD 데이터 세트로 내보냅니다. 레코드 레이아웃은 COPYBOOK DD에 설명되어 있습니다. copybook, outfile, 트랜스코딩 구성 경로의 다른 옵션은 DataPath를 참조하세요.