Data Integration de DataWorks vous permet de migrer des données JSON d'OSS vers MaxCompute. Une fois la migration terminée, utilisez la fonction de chaîne intégrée GET_JSON_OBJECT pour extraire les informations des données JSON.
Prérequis
Un workflow a été créé dans DataWorks. Cet exemple utilise un espace de travail en mode basique. Pour plus d'informations, consultez la rubrique Créer un workflow.
-
Un fichier JSON avec l'extension
.txta été chargé sur OSS. Dans cet exemple, le bucket OSS se trouve dans la région Chine (Shanghai). Exemple de fichier :{ "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 }
Migrer les données JSON
Ajoutez une source de données OSS. Pour plus d'informations, consultez la rubrique Configurer une source de données OSS.
-
Créez une table dans DataWorks pour stocker les données JSON migrées.
-
Connectez-vous à la console DataWorks. Dans la région cible, cliquez sur dans le volet de navigation de gauche. Sélectionnez un espace de travail dans la liste déroulante et cliquez sur Go to Data Development.
Cliquez sur Data Source pour accéder à la page Data Source, puis cliquez sur New data source pour ajouter un projet MaxCompute.
Cliquez sur Add Data Source and Bind to Data Development pour terminer la liaison.
Sur la page Data Development, placez le pointeur sur l'icône
et choisissez Create Table > Table.-
Dans la boîte de dialogue Create Table, sélectionnez un Path, saisissez un Name, puis cliquez sur Create .
RemarqueSi plusieurs instances sont liées, vous devez sélectionner une instance de moteur MaxCompute.
Sur la page de modification de la table, cliquez sur DDL Statement.
-
Dans la boîte de dialogue DDL Statement, saisissez l'instruction suivante et cliquez sur Generate Table Schema.
create table mqdata (mq_data string); Dans la boîte de dialogue Confirm operation, cliquez sur Confirm.
-
Une fois le schéma de la table généré, accédez à la section General, saisissez un Display Name pour la table, puis cliquez sur Commit to Development Environment et Commit to Production Environment.
RemarqueSi vous utilisez un espace de travail en mode basique, il vous suffit de cliquer sur Commit to Production Environment.
-
-
Créez un nœud de synchronisation par lots.
Accédez à la page d'analyse des données. Cliquez avec le bouton droit sur le workflow spécifié et choisissez .
Dans la boîte de dialogue Create Node, saisissez le Name, puis cliquez sur Confirm.
Dans la barre de navigation supérieure, choisissez l'icône
.En mode script, cliquez sur l'icône
.Dans la boîte de dialogue import Template, configurez le SOURCE type, la data source, le target type et la data source, puis cliquez sur confirm.
-
Modifiez la configuration JSON, puis cliquez sur le bouton
.Exemple de configuration :
{ "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 } } }
Vérifier les résultats
Créez un nœud ODPS SQL.
Cliquez avec le bouton droit sur le workflow et choisissez .
Dans la boîte de dialogue create a function, saisissez le function name, puis cliquez sur submit.
-
Sur l'onglet de configuration du nœud ODPS SQL, saisissez les instructions suivantes.
-- 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; Cliquez sur l'icône
pour exécuter le code.Consultez les résultats dans operation Log.