O Data Integration do DataWorks permite migrar dados JSON do OSS para o MaxCompute. Após a migração, use a função de string integrada GET_JSON_OBJECT para extrair informações dos dados JSON.
Pré-requisitos
Crie um fluxo de trabalho no DataWorks. Este exemplo usa um workspace no modo básico. Para mais informações, consulte Crie um fluxo de trabalho.
-
Carregue um arquivo JSON com a extensão
.txtno OSS. Neste exemplo, o bucket do OSS está na região China (Shanghai). Arquivo de exemplo:{ "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 }
Migrar dados JSON
Adicione uma fonte de dados do OSS. Para mais informações, consulte Configure an OSS data source.
-
Crie uma tabela no DataWorks para armazenar os dados JSON migrados.
-
Acesse o DataWorks console. Na região de destino, clique em no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.
Clique em Data Source para acessar a página Data Source e clique em New data source para adicionar um projeto do MaxCompute.
Clique em Add Data Source and Bind to Data Development para concluir a vinculação.
Na página Data Development, passe o ponteiro sobre o ícone
e escolha Create Table > Table.-
Na caixa de diálogo Create Table, selecione um Path, insira um Name e clique em Create .
NotaSe houver várias instâncias vinculadas, selecione uma instância do mecanismo MaxCompute.
Na página de edição da tabela, clique em DDL Statement.
-
Na caixa de diálogo DDL Statement, insira a seguinte instrução e clique em Generate Table Schema.
create table mqdata (mq_data string); Na caixa de diálogo Confirm operation, clique em Confirm.
-
Após gerar o esquema da tabela, acesse a seção General, insira um Display Name para a tabela e clique em Commit to Development Environment e Commit to Production Environment.
NotaSe estiver usando um workspace no modo básico, clique apenas em Commit to Production Environment.
-
-
Crie um nó de sincronização em lote.
Acesse a página de análise de dados. Clique com o botão direito no fluxo de trabalho especificado e escolha .
Na caixa de diálogo Create Node, insira o Name e clique em Confirm.
Na barra de navegação superior, escolha o ícone
.No modo de script, clique em ícone
.Na caixa de diálogo import Template, configure o SOURCE type, a data source, o target type e a data source, e clique em confirm.
-
Modifique a configuração JSON e clique em botão
.Exemplo de configuração:
{ "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 } } }
Verifique os resultados
Crie um nó ODPS SQL.
Clique com o botão direito no fluxo de trabalho e escolha .
Na caixa de diálogo create a function, insira o function name e clique em submit.
-
Na aba de configuração do nó ODPS SQL, insira as seguintes instruções.
-- Query data in the mqdata table. SELECT * from mqdata; -- Get the value of the 'expensive' field from the JSON data. SELECT GET_JSON_OBJECT(mqdata.mq_data,'$.expensive') FROM mqdata; Clique em ícone
e execute o código.Visualize os resultados no operation Log.