OSS에서 MaxCompute로 JSON 데이터 마이그레이션 모범 사례

본고는 DataWorks 데이터 통합을 이용하여 JSON 데이터를 OSS에서 MaxCompute로 이전하고 MaxCompute 내장 문자열 함수인 GET 를 사용하는 방법을 소개합니다JSON_OBJECT에서 JSON 정보를 추출합니다.
OSS 데이터 업로드
JSON 파일의 이름을 TXT 파일로 변경하여 OSS에 업로드합니다.본문에 사용된 JSON 파일의 예는 다음과 같습니다.

{
    "store": {
        "book": [
             {
                "category": "reference",
                "author": "Nigel Rees",
                "title": "Sayings of the Century",
                "price": 8.95
             },
             {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": 12.99
             },
             {
                 "category": "fiction",
                 "author": "J. R. R. Tolkien",
                 "title": "The Lord of the Rings",
                 "isbn": "0-395-19395-8",
                 "price": 22.99
             }
          ],
          "bicycle": {
              "color": "red",
              "price": 19.95
          }
    },
    "expensive": 10
}

applog.txt 파일을 OSS에 업로드합니다. 이 문서에서 OSS Bucket은 화동 2구역에 있습니다. 
DataWorks를 사용하여 MaxCompute로 데이터 가져오기
  • 새로운 OSS 데이터 소스
  • DataWorks 데이터 통합 콘솔을 사용하여 OSS 유형 데이터 소스를 추가합니다. 
    구체적인 매개 변수는 다음과 같다. 테스트 데이터 원본의 연결성은 통과하면 클릭하여 완성할 수 있다.Endpoint 주소는 OSS 영역의 외부 네트워크, 내부 네트워크 주소를 참조하십시오.http://oss-cn-shanghai.aliyun... http://oss-cn-shanghai-internal.aliyuncs.com(본고에서 OSS와 DataWorks 프로젝트가 같은region에 있기 때문에 본고는 후자를 선택하여 내부 네트워크를 통해 연결한다). 
  • 새 데이터 동기화 작업
  • DataWorks에서 새 데이터 동기화 유형 노드를 만듭니다. 
    새로 만들기와 동시에 DataWorks에서 JSON 데이터를 저장하는 데 사용할 새 폼 작업을 만듭니다. 이 예에서 새 폼의 이름은 mqdata입니다. 
    표 매개 변수는 도형화 인터페이스를 통해 완성할 수 있다.이 예에서 mqdata표는 string이고 열의 이름은 MQdata입니다. 
    위의 새 작업을 완료하면 다음 그림과 같이 데이터 동기화 작업 매개 변수를 그래픽 인터페이스에서 구성할 수 있습니다.대상 데이터 소스 이름odps 선택first, 목표표를 새로 만든 mqdata로 선택하십시오.데이터 소스 유형은 OSS이며, Object 접두사는 파일 경로와 이름을 입력할 수 있습니다.열 구분자는 TXT 파일에 존재하지 않는 문자를 사용하면 됩니다. 본고에서는 ^(OSS의 TXT 형식 데이터 원본에 대해 Dataworks는 다중 문자 구분자를 지원하기 때문에% &% #^$^% 같은 보기 어려운 문자를 열 구분자로 사용해서 한 열로 분할할 수 있습니다.) 
    맵 방식은 기본 동행 맵을 선택하면 됩니다. 
    왼쪽 위에 있는 스크립트 전환 단추를 누르면 스크립트 모드로 전환됩니다.fileFormat 매개 변수 수정: "fileFormat":"binary".이 절차는 OSS의 JSON 파일이 MaxCompute에 동기화된 후에 같은 줄의 데이터가 존재하도록 보장합니다. 즉, 하나의 필드입니다.다른 매개 변수는 변하지 않습니다. 스크립트 모드 코드는 다음과 같습니다.
    
    {
        "type": "job",
        "steps": [
            {
                "stepType": "oss",
                "parameter": {
                    "fieldDelimiterOrigin": "^",
                    "nullFormat": "",
                    "compress": "",
                    "datasource": "OSS_userlog",
                    "column": [
                        {
                            "name": 0,
                            "type": "string",
                            "index": 0
                        }
                    ],
                    "skipHeader": "false",
                    "encoding": "UTF-8",
                    "fieldDelimiter": "^",
                    "fileFormat": "binary",
                    "object": [
                        "applog.txt"
                    ]
                },
                "name": "Reader",
                "category": "reader"
            },
            {
                "stepType": "odps",
                "parameter": {
                    "partition": "",
                    "isCompress": false,
                    "truncate": true,
                    "datasource": "odps_first",
                    "column": [
                        "mqdata"
                    ],
                    "emptyAsNull": false,
                    "table": "mqdata"
                },
                "name": "Writer",
                "category": "writer"
            }
        ],
        "version": "2.0",
        "order": {
            "hops": [
                {
                    "from": "Reader",
                    "to": "Writer"
                }
            ]
        },
        "setting": {
            "errorLimit": {
                "record": ""
            },
            "speed": {
                "concurrent": 2,
                "throttle": false,
                "dmu": 1
            }
        }
    }

    상기 설정을 완성한 후 운행접속을 클릭하면 됩니다.실행 성공 로그의 예는 다음과 같다. 
    JSON 필드 정보 가져오기
    비즈니스 프로세스에서 ODPS SQL 노드를 새로 만듭니다. 
    현재 mqdata표의 데이터를 보기 위해 먼저 SELECT*from mqdata; 문장을 입력할 수 있습니다.물론 이 단계와 다음 단계에서는 MaxCompute 클라이언트에 명령을 직접 입력하여 실행할 수 있습니다. 
    가져오기 테이블의 데이터 결과가 올바르지 않은지 확인한 후 MaxCompute 내장 문자열 함수 GET 를 사용할 수 있습니다.JSON_OBJECT에서 원하는 JSON 데이터를 가져옵니다.이 예에서는 SELECT GET_JSON_OBJECT(mqdata.MQdata,'$.expensive') FROM mqdata;를 사용하여 JSON 파일의 expensive 값을 가져옵니다.다음 그림에서 보듯이 데이터를 성공적으로 얻었습니다. 
    본문 저자: 부수
    원문을 읽다
    본고는 운서 지역사회의 오리지널 내용으로 허락 없이 전재할 수 없다.

    좋은 웹페이지 즐겨찾기