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 interna GET_JSON_OBJECT para extrair informações dos dados JSON.
Pré-requisitos
Crie um workflow no DataWorks. Este exemplo usa um workspace no modo básico. Para mais informações, consulte Create a workflow.
-
Envie um arquivo JSON com a extensão
.txtpara o 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 source 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.
-
Faça login no console do DataWorks. 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 do mouse 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 de engine do 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 schema da tabela, vá para a seção General, insira um Display Name para a tabela e clique em Commit to Development Environment e Commit to Production Environment.
NotaSe você usar 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 workflow 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 script, clique no ícone
.Na caixa de diálogo import Template, defina o SOURCE type, a data source, o target type e a data source, e clique em confirm.
-
Modifique a configuração JSON e clique no botão
.Configuração de exemplo:
{ "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 } } }
Verificar os resultados
Crie um nó ODPS SQL.
Clique com o botão direito no workflow 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 no ícone
para executar o código.Visualize os resultados no operation Log.