1. 程式人生 > >MongoDB資料庫的安裝和資料的批量匯入(2014/4/1)

MongoDB資料庫的安裝和資料的批量匯入(2014/4/1)

伺服器上MongoDB安裝

2  將下載好的安裝包mongodb-linux-x86_64-2.4.9.tgz通過Xftp工具傳到伺服器上的特定目錄下(如:/home/xp/usr/local)

3  將壓縮包解壓,tar xzvf mongodb-linux-x86_64-2.4.9.tgz

4  新建目錄 mongodb 目錄, 用來存放mongodb 資料庫 和 日誌檔案

   命令:

     mkdir mongodb;

      cdmongodb;

     mkdir db;    // 存放資料庫的資料夾

     mkdir log ;  //存放資料庫日誌檔案的資料夾

5        切換到解壓好的 mongodb-linux-x86_64-2.4.9 目錄下,進入 bin 目錄

6        執行 mongod 程式,該程式用來啟動MongoDB的資料庫伺服器

一般格式如下:

./mongod--dbpath=/home/xp/usr/local/mongodb/db 

        --logpath=/home/xp/usr/local/mongodb/log/MongoDB.log

         --logappend 

         --port=27017

         --fork

引數解釋:

--dbpath:
    資料庫的資料目錄,即新建的mongodb/db資料夾。

--port
    埠號,預設埠號是27017。

--fork
    以守護程序的方式執行MongoDB。

--logpath
    指定日誌輸出路徑,而不是輸出到命令列。如果對資料夾有寫許可權的話,系統會在檔案不存在時建立它。它會將已有檔案覆蓋掉,清除所有原來的日誌記錄。如果想保留原來的日誌,還需要使用--logappend選項。

--logappend

以append方式新增日誌到日誌檔案。

7        還可以設定開機自動啟動。把啟動mongodb的啟動命令新增到/etc/rc.local即可,最好使用絕對路徑。

8        Mongod 程式正常啟動會出現:

about to fork child process, waiting untilserver is ready for connections.
forked process: 29517
all output going to: /home/xp/usr/local/mongodb-linux-x86_64-2.4.9/log
child process started successfully, parent exiting

9        測試mongod 是否成功啟動。

檢查埠是啟動,埠為:27017

命令:netstat –lanp | grep 27017

在bin資料夾下,執行mongo檢視安裝是否成功。命令:./mongo

10    啟動mongod過程中遇到的錯誤。Erro number 如果顯示為 1 ,則說明 許可權不夠,需要切換到root,再啟動mongod 程式。

11    常見mongodb資料庫基本操作命令。

瞭解mongodb資料庫基本操作命令最簡單的辦法是進入mongo shell 後開啟幫助系統。

命令:

>help

>db.help()

常見的命令有:

1、show dbs

顯示當前資料庫伺服器上的資料庫

2、use my_mongodb

 切換到指定資料庫my_mongodb的上下文,可以在此上下文中管理my_mongodb資料庫以及其中的集合等

3、show collections

顯示資料庫中所有的集合(collection)

4、db.serverStatus()  

檢視資料庫伺服器的狀態

5、db.user.insert()

插入操作,對應關係資料庫的insert操作。

資料批量匯入MongoDB

雖然mongodb資料庫提供了匯入資料的工具mongoimport,但由於mongodb只支援JSON和BSON格式的資料,所以要將只是以空格符為分隔符的資料通過mongoimport 匯入資料庫是不可行的。解決辦法是用指令碼批量插入,缺點是時間長。

程式基本思路:1、連線資料庫 2、對日誌檔案分析處理後逐條插入

 指令碼使用python編寫,需要預先安裝pymongo包。

 其中很多輸出顯示不是必要的,可以刪除。

原始碼:

#!/usr/bin/env python
#encoding:utf-8

###################################

# function: analysis the log in the '.' dir to JSON , and 
#output the data to the MongoDB.
# data:  2014/3/31
#History: 1.0 

###################################
import os
import pymongo


def connect_mongodb():
    servers="mongodb://localhost:27017"
    conn = pymongo.Connection(servers)
    print conn.database_names()
    db = conn.my_mongodb            #連線庫
    return db

def str_process(string,db):
    d={}
    if string == '\n': 
		return
    string2=str(string)
    print '-----'+string
    string2=string2.split(' ')
    print '---------------'
    print string2
    for i in string2:
        print i
    print '------------'
    string2[3].split('\n')
    d['projectcode']=string2[0]
    d['pagename']=string2[1]
    d['pageview']=string2[2]
    d['bytes']=string2[3][:-1]
    db.user.insert(d)	
    
def file_process(source_file,db):
    string2=''

    f=open(source_file,'r')
    print 'file name :'+source_file

    while True:
	  string2=f.readline()
	  if string2 == '':
	    break
	  string2=str_process(string2,db)
	  print string2

def get_dir_list(dir):  #input the dir ,will output the all filename
    dat0=[]
    for i in os.listdir(dir):
        dat0.append(i)
    return dat0

def all_file_process():
    dir_file_name=''
    dir_list=[]

    dir_file_name=raw_input('please input the dir name:')
    dir_list=get_dir_list(dir_file_name)
    print dir_list
    db=connect_mongodb()
    for i in dir_list:
        if str(i) != 'log_file_process.py':
            file_process(str(i),db)

all_file_process()


注意的地方:

   用的環境是用Xshell 連線到伺服器,而且指令碼執行週期長,最好使程式在後臺跑。

主要是可以防止網路掉線或關機,中斷了資料的匯入,導致需要重新執行程式。

命令:

nohup  ./log_file_process.py  &>/dev/null 2> &

相關推薦

MongoDB資料庫安裝資料批量匯入(2014/4/1)

伺服器上MongoDB安裝 2  將下載好的安裝包mongodb-linux-x86_64-2.4.9.tgz通過Xftp工具傳到伺服器上的特定目錄下(如:/home/xp/usr/local) 3  將壓縮包解壓,tar xzvf mongodb-linux-x86

excel資料批量匯入mongodb資料庫

       資料匯入資料庫的工作經常會遇到,這篇博文我們介紹一下linux系統下如何通過命令將excel中的資料批量匯入到非關係型資料庫mongodb中。        步驟一:將bigdata.x

Dstream[Row] 資料批量匯入Mysql 並去重(大致為如果資料庫中有某行資料了,本次執行若有一行與資料庫中的那行相同,則不會再插入進去)

def Save2Mysql(stateDStream: DStream[Row]): Unit = { stateDStream.foreachRDD { rdd => { rdd.foreachPartition(partitionRecord

Excel檔案一鍵上傳並解析完成資料批量匯入資料庫

原來做檔案上傳的時候,都是有一個輸入框,點選上傳按鈕,先瀏覽檔案,選擇檔案後,把檔案的路徑儲存到form表單中,最後通過form表單提交到服務端。這樣的介面不是很美觀。為了使用者有更好地體驗(UE),現在的大多數系統都是採用一鍵檔案上傳,使用者點選上傳按鈕,選擇

MongoDB資料庫下載安裝詳細步驟

一、簡介 MongoDB是一個基於分散式檔案儲存的資料庫。由C++語言編寫。旨在為WEB應用提供可擴充套件的高效能資料儲存解決方案。 MongoDB是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。它支援的資料結構非常鬆散,

JAVA Excel資料批量匯入到SQL資料庫

    今天剛好需要批量將Excel裡的資料匯入到SQL Server,本來打算用Genero寫的,發現官方驅動包找不到SQL Server 2012的驅動,我的天啊,無解!只好用JAVA來寫!JAVA通過載入JDBC驅動輕鬆搞定!除了引用sqljdbc4.jar 庫外,還

如何將Excel表格中的資料批量匯入到Oracle資料庫表中

工具選擇     資料庫 ORACLE11G     程式語言 JAVA 首先是使用JAVA語言編寫一個解析EXCEL檔案的小程式碼,這裡需要一個工具JXL.JAR,這是個JAR包,有了它,我們就可以輕鬆的把EXCEL檔案解析 如果要對EXCEL檔案進行操作,則需要對EXCE

專案案例 || 將Excel資料批量匯入資料庫

你在工作中是否遇到這樣的問題?資料一般存放在Excel表中,逐條遷移到資料庫中太麻煩,而且很多時候企業的資料量都是以萬起步,單條匯入顯然不現實。那麼該如何解決呢? 我們今天就給大家介紹一個用途非常廣泛的功能:批量匯入,在很多系統中,這也是必須實現的功能。而且當Excel表結構越複雜

MongoDB資料庫安裝配置基本操作

1.安裝啟動 從MongoDB官網下載安裝,配置環境變數 在C盤建立以下資料夾 C:\data\db 在命令列執行以下命令 C:\Users\admin>mongod 如果執行成功,會出現以下資訊 執行完上面的命令併成功

Excel 資料批量匯入到 mysql資料庫

工作中平時會遇到將 Excel資料批量匯入資料庫的情況。我是這樣做的 step1.  先將 excel 轉 json。 step2.  將轉換後的json拷貝到前端程式中,提交 json格式資料給後端;  後端迴圈遍歷資料進資料庫。

mongodb安裝啟動

localhost 系統 創建 簡單 nod 文件中 install enter 我們 1.在mongodb的官網上下載安裝包 https://www.mongodb.com/download-center 選擇對應你的系統的安裝包下載 2.解壓安裝包在d盤中,為了之後方

mongodb安裝配置

version ast fast repair 檢測 創建數據庫 dmi 管理 mman 1.下載安裝 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz tar zxf mongodb-

Ubuntu下MongoDB安裝使用

ash fur 測試 進行 use default group ogg size 本博文介紹了MongoDB,並詳細指引讀者在Ubuntu下MongoDB的安裝和使用。本教程在Ubuntu14.04下測試通過.(2017.09.07) 安裝MongoDB MongoDB

mongodb安裝使用

輸入 img bpa 插入 god 服務 日誌文件 數據 www 1、下載MongoDB 地址:【https://www.mongodb.com/download-center?jmp=nav#atlas】好像需要註冊,可以從下面下載 【http://dl.mong

mongodb安裝許可權管理

mongodb4.0已經發布,但是鑑於線上環境更多的是使用舊版本的mongodb,我們這裡使用的mongodb3.4版本。 官網下載地址為:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.18.tgz 直接解壓 tar zxvf m

jdbc百萬資料批量匯入,流式讀取

Connection connReader = null; Connection connWrite = null; String url = "jdbc:mysql://XX:3306/XX?" + "user=XX&password=XX&

Linux(centos7)作業系統下,MongoDB資料庫安裝

Y8   MongoDB 是一個基於分散式檔案儲存的資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴充套件的高效能資料儲存解決方案。MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。 下面介紹Mongo

MongoDB安裝常用命令

一、MongoDB的安裝 1.1. 安裝Homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" //按回車確認 //更新

MongoDB資料庫安裝及配置環境(windows10系統)

mongodb 下載與安裝文件 MongoDB資料庫安裝及配置環境(windows10系統) https://www.cnblogs.com/best/p/6212807.html windows10系統下MongoDB的安裝及環境配置: MongoDB的安裝   下載地址:&n

MongoDB資料庫介紹Java使用

MongoDB簡介         MongoDB是一個開源的面向文件儲存的NoSQL資料庫,它沒有了表結構的概念和資料結構的限制;一個數據庫包含多個集合,每個集合理論上包含無數個文件,每個文件就是一條記