DataWorks Data Integration, JSON verilerini OSS'ten MaxCompute'e geçirmenize olanak tanır. Geçişten sonra yerleşik dize işlevi GET_JSON_OBJECT ile JSON verilerinden bilgi çıkarabilirsiniz.
Ön koşullar
DataWorks içinde bir iş akışı oluşturdunuz. Bu örnekte temel modda bir çalışma alanı kullanılmaktadır. Daha fazla bilgi için bkz. İş akışı oluşturma.
-
.txtuzantılı bir JSON dosyasını OSS'e yüklediniz. Bu örnekte OSS paketi Çin (Şanghay) bölgesindedir. Örnek dosya:{ "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 }
JSON verilerini geçirin
Bir OSS veri kaynağı ekleyin. Daha fazla bilgi için bkz. OSS veri kaynağını yapılandırma.
-
Geçirilen JSON verilerini depolamak üzere DataWorks içinde bir tablo oluşturun.
-
DataWorks konsolu üzerinde oturum açın. Hedef bölgede sol gezinme bölmesinden seçeneğine tıklayın. Açılan listeden bir çalışma alanı seçin ve Go to Data Development seçeneğine tıklayın.
Data Source seçeneğine tıklayarak Data Source sayfasına gidin ve bir MaxCompute projesi eklemek için New data source seçeneğine tıklayın.
Bağlamayı tamamlamak için Add Data Source and Bind to Data Development seçeneğine tıklayın.
Data Development sayfasında fare imlecini
simgesinin üzerine getirin ve Create Table > Table seçeneklerini belirleyin.-
Create Table iletişim kutusunda bir Path seçin, bir Name girin ve Create seçeneğine tıklayın.
NotBirden çok örnek bağlıysa bir MaxCompute altyapı örneği seçmeniz gerekir.
Tablo düzenleme sayfasında DDL Statement seçeneğine tıklayın.
-
DDL Statement iletişim kutusunda aşağıdaki ifadeyi girin ve Generate Table Schema seçeneğine tıklayın.
create table mqdata (mq_data string); Confirm operation iletişim kutusunda Confirm seçeneğine tıklayın.
-
Tablo şeması oluşturulduktan sonra General bölümüne gidin, tablo için bir Display Name girin ve ardından Commit to Development Environment ve Commit to Production Environment seçeneklerine tıklayın.
NotTemel modda bir çalışma alanı kullanıyorsanız yalnızca Commit to Production Environment seçeneğine tıklamanız yeterlidir.
-
-
Bir toplu iş senkronizasyon düğümü oluşturun.
Veri analizi sayfasına gidin. Belirtilen iş akışına sağ tıklayın ve seçeneklerini belirleyin.
Create Node iletişim kutusunda Name değerini girin ve Confirm seçeneğine tıklayın.
Üst gezinme çubuğunda
simgesini seçin.Betik modunda
simgesine tıklayın.import Template iletişim kutusunda SOURCE type, data source, target type ve data source değerlerini seçin ve confirm seçeneğine tıklayın.
-
JSON yapılandırmasını değiştirin ve ardından
düğmesine tıklayın.Örnek yapılandırma:
{ "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 } } }
Sonuçları doğrulayın
Bir ODPS SQL düğümü oluşturun.
İş akışına sağ tıklayın ve seçeneklerini belirleyin.
create a function iletişim kutusunda function name değerini girin ve submit seçeneğine tıklayın.
-
ODPS SQL düğümü yapılandırma sekmesinde aşağıdaki ifadeleri girin.
-- 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; Kodu çalıştırmak için
simgesine tıklayın.Sonuçları görüntülemek için operation Log seçeneğini kullanabilirsiniz.