Todos os produtos
Search
Central de documentação

MaxCompute:Migrar dados JSON do OSS para o MaxCompute

Última atualização: Jul 20, 2026

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

  • MaxCompute is activated.

  • 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 .txt para 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

  1. Adicione uma source de dados do OSS. Para mais informações, consulte Configure an OSS data source.

  2. Crie uma tabela no DataWorks para armazenar os dados JSON migrados.

    1. Faça login no console do DataWorks. Na região de destino, clique em Data Development and O&M > Data Development no painel de navegação à esquerda. Selecione um workspace na lista suspensa e clique em Go to Data Development.

    2. Clique em Data Source para acessar a página Data Source e clique em New data source para adicionar um projeto do MaxCompute.

    3. Clique em Add Data Source and Bind to Data Development para concluir a vinculação.

    4. Na página Data Development, passe o ponteiro do mouse sobre o ícone image..png e escolha Create Table > Table.

    5. Na caixa de diálogo Create Table, selecione um Path, insira um Name e clique em Create .

      Nota

      Se houver várias instâncias vinculadas, selecione uma instância de engine do MaxCompute.

    6. Na página de edição da tabela, clique em DDL Statement.

    7. Na caixa de diálogo DDL Statement, insira a seguinte instrução e clique em Generate Table Schema.

      create table mqdata (mq_data string);
    8. Na caixa de diálogo Confirm operation, clique em Confirm.

    9. 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.

      Nota

      Se você usar um workspace no modo básico, clique apenas em Commit to Production Environment.

  3. Crie um nó de sincronização em lote.

    1. Acesse a página de análise de dados. Clique com o botão direito no workflow especificado e escolha Create Node > Data Integration > Offline synchronization.

    2. Na caixa de diálogo Create Node, insira o Name e clique em Confirm.

    3. Na barra de navegação superior, escolha o ícone Conversion script.

    4. No modo script, clique no ícone **.

    5. 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.

    6. 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.

  1. Clique com o botão direito no workflow e escolha new > MaxCompute > ODPS SQL.

  2. Na caixa de diálogo create a function, insira o function name e clique em submit.

  3. 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;
  4. Clique no ícone ** para executar o código.

  5. Visualize os resultados no operation Log.