Este tópico descreve como utilizar o recurso Data Integration do DataWorks para migrar campos JSON do MongoDB para o MaxCompute.
Pré-requisitos
Adicione uma source de dados do MaxCompute. Para mais informações, consulte Bind MaxCompute compute resources.
Crie um fluxo de negócios no DataWorks. Este tópico utiliza um fluxo de negócios no modo básico. Para mais informações, consulte Create a business flow.
Preparar dados de teste no MongoDB
-
Prepare uma conta de usuário.
Crie um usuário no banco de dados. Utilize esse usuário para adicionar uma source de dados no DataWorks. Neste exemplo, execute o seguinte comando:
db.createUser({user:"bookuser",pwd:"123456",roles:["user1"]})Esse comando cria um usuário chamado bookuser com a senha 123456. A função pode ser qualquer uma que tenha permissões para acessar os dados.
-
Prepare os dados.
Faça o upload dos dados para o banco de dados MongoDB. Este exemplo utiliza ApsaraDB for MongoDB. O tipo de rede é VPC. É necessário um endpoint público para que a VPC se comunique com o grupo de recursos públicos do DataWorks. O código a seguir fornece os dados de teste:
{ "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 } -
Este exemplo utiliza o banco de dados admin e a coleção userlog no console DMS para MongoDB. Para visualizar os dados enviados, execute o seguinte comando:
db.userlog.find().limit(10)
Usar o DataWorks para migrar dados
Faça login no DataWorks console.
-
Crie uma tabela de destino no DataWorks para os dados migrados do MongoDB.
Clique com o botão direito em um Workflow criado e selecione Create Table > Table.
Na página Create Table, selecione o tipo de mecanismo e insira o Name.
Na página de edição da tabela, clique em DDL Statement.
-
Na caixa de diálogo DDL Statement, insira a instrução DDL e clique em Generate Table Schema.
ImportanteO nome da tabela na instrução DDL deve corresponder ao Table Name inserido na página Create Table.
create table mqdata (mqdata string); Clique em Commit to Production Environment.
Adicione uma source de dados do MongoDB. Para mais informações, consulte Configure a MongoDB data source.
-
Crie um nó de sincronização offline.
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 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.
-
Insira o seguinte script:
{ "type": "job", "steps": [ { "stepType": "mongodb", "parameter": { "datasource": "mongodb_userlog", "column": [ { "name": "store.bicycle.color", "type": "document.String" } ], "collectionName": "userlog" }, "name": "Reader", "category": "reader" }, { "stepType": "odps", "parameter": { "partition": "", "isCompress": false, "truncate": true, "datasource": "odps_source", "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, } } } Clique no ícone
para executar o código.Visualize os resultados no operation Log.
Verificar o resultado
Clique com o botão direito no fluxo de trabalho e escolha .
Na caixa de diálogo create a node, insira o node name e clique em submit.
-
Na página de edição do nó ODPS SQL, insira a seguinte instrução:
SELECT * from mqdata; Clique no ícone
para executar o código.Visualize os resultados no Runtime Log.