1. 程式人生 > >Spring Batch:將資料從Web服務處理到MongoDB

Spring Batch:將資料從Web服務處理到MongoDB

概觀

在這篇文章中,我們將介紹如何建立一個使用Web服務資料並將其插入MongoDB資料庫的Spring Batch應用程式。

要求

閱讀本文的開發人員必須熟悉Spring Batch(示例)和MongoDB。

環境

注意:批處理也可以在本地執行。

指令碼

全域性場景步驟是:

  1. 從Web服務讀取資料,在這種情況下:https://sunrise-sunset.org/api

獲取城市列表的座標,然後呼叫API以讀取日出和日落日期時間。

2.處理資料並提取業務資料

收集資料的業務處理

3.在MongoDB中插入已處理的資料

將處理過的資料儲存為mongo文件

編碼

  • 輸入:本地檔案中JSON格式的城市資料列表,如下所示:

[
   {
      “名字”:“Danemark”,
      “城市”:[
         {
            “名字”:“Copenhague”,
            “lat”:55.676098,
            “lng”:12.568337,
            “timeZone”:“CET”
         },
         {
            “名字”:“奧胡斯”,
            “lat”:56.162939,
            “lng”:10.203921,
            “timeZone”:“CET”
         },
         {
            “名字”:“歐登塞”,
            “lat”:55.39594,
            “lng”:10.38831,
            “timeZone”:“CET”
         },
         {
            “名字”:“奧爾堡”,
            “lat”:57.046707,
            “lng”:9.935932,
            “timeZone”:“CET”
         }
      ]
   }
]

我們的場景從本地json檔案獲取輸入資料。對映bean如下:

國豆:

匯入 java。io。可序列化 ;
匯入 java。util。清單 ;

進口 com。fastxml。傑克遜。註釋。JsonIgnoreProperties ;

@JsonIgnoreProperties(ignoreUnknown  =  true)
public  class  BCountry  實現 Serializable {

private  static  final  long  serialVersionUID  =  1L ;

私有 字串 名稱 ;

私人 名單< BCity >  城市 ;

public  BCountry(){
super();
}

public  BCountry(String  name,List < BCity >  cities){
super();
這個。name  =  name ;
這個。城市 =  城市 ;
}

public  BCountry(String  name){
super();
這個。name  =  name ;
}

public  String  getName(){
返回 名稱 ;
}

public  void  setName(String  name){
這個。name  =  name ;
}

public  List < BCity >  getCities(){
返回 城市 ;
}

public  void  setCities(List < BCity >  cities){
這個。城市 =  城市 ;
}



@覆蓋
public  int  hashCode(){
final  int  prime  =  31 ;
int  result  =  1 ;
結果 =  黃金 *  結果 +((城市 ==  空)? 0:城市。的hashCode());
結果 =  黃金 *  結果 +((名稱 ==  空)? 0:名稱。的hashCode());
返回 結果 ;
}

@覆蓋
public  boolean  equals(Object  obj){
if(this  ==  obj)
返回 true ;
if(obj  ==  null)
返回 虛假 ;
如果(的getClass()!=  OBJ。的getClass())
返回 虛假 ;
BCountry  other  =(BCountry)obj ;
if(cities  ==  null){
如果(其他。城市 !=  空)
返回 虛假 ;
} 否則 如果(!城市。平等(等。城市))
返回 虛假 ;
if(name  ==  null){
如果(其他。名字 !=  空)
返回 虛假 ;
} 否則 如果(!名字。平等(其它。名))
返回 虛假 ;
返回 true ;
}

@覆蓋
public  String  toString(){
返回 “BCountry [name =”  +  name  +  “,cities =”  +  cities  +  “]” ;
}


}

和城市豆:

匯入 java。io。可序列化 ;

進口 com。fastxml。傑克遜。註釋。JsonIgnoreProperties ;

@JsonIgnoreProperties(ignoreUnknown  =  true)
公共 類 BCity  實現 Serializable {

private  static  final  long  serialVersionUID  =  1L ;

private  String  name,timeZone ;
私人 雙 拉特,lng ;

public  BCity(){
            
           

相關推薦

Spring Batch資料Web服務處理MongoDB

概觀 在這篇文章中,我們將介紹如何建立一個使用Web服務資料並將其插入MongoDB資料庫的Spring Batch應用程式。 要求 閱讀本文的開發人員必須熟悉Spring Batch(示例)和MongoDB。 環境 Mongo資料庫部署在MLab中。請按照本快速入門中的步驟操作。 批

mongodb在mongo終端上操作資料一個欄位複製到另一個欄位上。

在mongo終端上操作,把一個collection中中某個欄位值複製到另一個欄位上: >remap = function(x){ if (x.love) { db.user.update({_id: x._id}, {$set: {want: x.love}})

iis 7上發布mvc報錯403.14-Forbidden Web 服務器被配置為不列出此目錄的內容

OS asp 影響 directory spn 內容 server 解決 並且 iis 7上發布mvc報錯:403.14-Forbidden Web 服務器被配置為不列出此目錄的內容 提示裏面的解決方法是: 如果不希望啟用目錄瀏覽,請確保配置了默認文檔並且該文件存在

NodeJS資料夾按照存放路徑變成一個對應的JSON

在程式設計之前,一定要有一個信條:程式碼是為了減少工作量而生的,重複枯燥的工作是不能容忍的。 需求 這是由上篇文章衍生出的需求,我已經將一個資料夾內所有的檔名轉譯為英文,但我在頁面上還需要將這些圖片引入載入。如果一個一個手寫到程式裡,未免有點勞心勞神。那麼何不將這個資料夾按照存放路徑變成一個相應的JSON

初試Spring Boot構建第一個Web程式

Spring Boot主要提供快速構建專案的功能。本文中我們會使用Spring Boot構建第一個Web程式,同時介紹Spring Boot最簡單的功能,例如執行單元測試,釋出與呼叫REST服務等。 本文作者楊恩雄,選自新書《Spring Boot 2+Thymeleaf企業應用實戰》。 1 Spring

使用Sqoop資料RDBMS(關係型資料庫) 到hdfs和Hive的匯入匯出

一、RDBMS 到 HDFS/HIVE 1.首先啟動Mysql service mysql start 2.在mysql中新建一張表並插入資料 # mysql -uroot -proot mysql> create table dept(id int pri

利用sqoop指定列指定條件的方式資料mysql中增量匯入hive表中

========1、sqoop增量(指定列指定條件的方式增量匯入hive表中)匯入hive指令碼======= #!/bin/bash #Set the RDBMS connection params rdbms_ip=$1 rdbms_connect="jdbc:mysq

基於DataX資料Sqlserver同步到Oracle

DataX是阿里雲推出的一款開源的ETL工具,通過配置json檔案實現不同資料庫之間的資料同步。先有需求是從Sqlserver同步資料到Oracle,網上關於DataX的介紹很多。 框架設計 DataX本身作為離線資料同步框架,採用Framework + plugin架構構建。將資料來源讀取和寫入抽象

年會特輯丨周德銘資料驅動政務服務轉型

轉自:國脈互聯 電子政務智庫 11月28-29日,由中國社會科學院資訊化研究中心和北京國脈互聯資訊顧問有限公司聯合舉辦的“2018智慧中國年會”在北京隆重召開,以“資料賦能 智慧中國”為主題,共有來自全國部委、省、市、區縣電子政務、智慧城市、大資料主管領導、行業專家、企業代表、主流媒體

Vulkan Cookbook 第四章 14 資料影象複製到緩衝區

將資料從影象複製到緩衝區 譯者注:示例程式碼點選此處 在Vulkan中,我們不僅可以把資料從緩衝區傳輸到影象,還可以將資料從影象複製到緩衝區。繫結到它們的記憶體物件的屬性是什麼並不重要。但是資料複製操作是更新無法對映的裝置本地記憶體的唯一方法。 怎麼做... 1.獲取命令緩衝區的控制

Vulkan Cookbook 第四章 13 資料緩衝區複製到影象

將資料從緩衝區複製到影象 譯者注:示例程式碼點選此處 對於影象,我們可以繫結從不同記憶體型別分配的記憶體物件。但我們只能從的應用程式直接對映和更新主機可見記憶體。當想要更新使用裝置本地記憶體的影象記憶體時。我們需要從緩衝區中複製資料。 怎麼做... 1.獲取命令緩衝區的控制代碼並將其

scp 資料一臺linux伺服器複製到另一臺linux伺服器

scp 是secure copy的簡寫,用於在Linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且 scp傳輸是加密的。可能會稍微影響一下速度。當你伺服器硬碟變為只讀 read only system時,用scp可以幫你把檔

通過Json格式資料傳給服務

1、匯入json相關的jar包,一共是6個,如果有需要jar包的歡迎大傢俬聊我! 2、在繼承HttpServlet類下面的doGet()方法中寫如下的程式                 request.setCharacterEncoding("utf-8");resp

使用sqoop資料hdfs中匯入mysql時,卡在INFO mapreduce.Job: map 100% reduce 0%的解決辦法

最近在將hdfs中已經處理好的資料匯入到mysql的時候遇到這麼一個現象,當任務執行到 INFO mapreduce.Job: map 100% reduce 0% mapreduce任務卡在map100% ,任何reduce不繼續執行。 總結了以下解決辦法: 一,如果沒

【JavaFx教程】第五部分資料用 XML 格式儲存

第5部分的主題 持久化資料為XML 使用JavaFX的FileChooser 使用JavaFX的選單 在使用者設定中儲存最後開啟的檔案路徑。 現在我們的地址應用程式的資料只儲存在記憶體中。每次我們關閉應用程式,資料將丟失,因此是時候開始考慮持久化儲存資料了。 儲

linux scp命令 資料一臺linux伺服器複製到另一臺linux伺服器

scp是secure copy的簡寫,用於在Linux下進行遠端拷貝檔案的命令,和它類似的命令有cp,不過cp只是在本機進行拷貝不能跨伺服器,而且scp傳輸是加密的。可能會稍微影響一下速度。當你伺服器硬碟變為只讀 read only system時,用scp可以幫你把檔案移出

ExamApp總結(四)資料資料庫中進行存取

CrimeLab.java private static ContentValues getContentValues(Crime crime){ ContentValues values=new ContentValues(); va

Amazon ElastiCache價格_AWS資料快取web服務

備份儲存是與您拍攝的自動及使用者啟動快照相關的儲存。Amazon ElastiCache 為每個適用於 Redis 的 ElastiCache 活動叢集免費提供一個快照的儲存空間。額外備份儲存根據每月 0.085 USD/GB 的標準收取費用(所有區域的價格相同)。免費提供快照資料傳輸。

Android中AudioFlingerAudioTrack一個device切到另一個device輸出的實現邏輯

目前在調查AudioFlinger,想做到從一個裝置輸出到輸出到兩個裝置的轉換。面臨以下問題: 1,  某個thread如何改變某個playback執行緒的輸出route. 根據調查的結果,這個route只支援在同一個裝置上的切換,比如在primary裝置內部切換路由,

如何資料Action中傳遞到下一個JSP頁面?

一般使用request.setAttribute方法: 在Action中,使用request.setAttribute(String name,Object data)方法往request中設定引數 在JSP中,使用request.getAttribute(String n