OSS에서 MaxCompute로 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로 데이터 가져오기
구체적인 매개 변수는 다음과 같다. 테스트 데이터 원본의 연결성은 통과하면 클릭하여 완성할 수 있다.Endpoint 주소는 OSS 영역의 외부 네트워크, 내부 네트워크 주소를 참조하십시오.http://oss-cn-shanghai.aliyun... http://oss-cn-shanghai-internal.aliyuncs.com(본고에서 OSS와 DataWorks 프로젝트가 같은region에 있기 때문에 본고는 후자를 선택하여 내부 네트워크를 통해 연결한다).
새로 만들기와 동시에 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 값을 가져옵니다.다음 그림에서 보듯이 데이터를 성공적으로 얻었습니다. 본문 저자: 부수
원문을 읽다
본고는 운서 지역사회의 오리지널 내용으로 허락 없이 전재할 수 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity3D 시작하기(rolling ball) - 학습 노트만약 이 방법이 성공하지 못하면 각 구성 요소를 분류하여 다운로드할 수 있습니다. 항목은 3D를 선택하고 가져온 리소스는 None으로 선택할 수 있습니다. Scene: 각 게임마다 몇 개의 장면으로 구성되어 있으며,...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.