羅德興老師的教學歷程檔案 - 109-2 資訊技術 - 主題A3:Big Data 與 NOSQL
 

企業資訊與管理系
助理教授/日導
羅德興


歷程檔案 Portfolio

    主題A3:Big Data 與 NOSQL


    0.
    http://tx.liberal.ntu.edu.tw/InfoMgt/Jx/IS_IM/NoSQL.htm

    NoSQL/ Key-Value Database

    NoSQL/Key-Value 資料庫是網路興起後,資料庫設計與查詢的新方法,也可以說是對關聯式資料庫的一種反動。

    NoSQL/Key-Value 資料庫的 2 大特色是:

    NoSQL 非關聯式查詢

    所有關聯式資料庫的通用查詢語言是SQL,所以 NoSQL 就表示不用關聯式資料庫的結構、表格分析設計法、與根據主鍵(primary keys)的查詢,故也可稱為「非關聯式資料庫」。

    Key-Value Stores 「鍵-值」資料儲存法

    採用只有 2 欄,稱為雜湊表( Hash table ,大陸譯為哈希表 )的方式儲存。1欄是關鍵字 (Key),另1欄是值 (Value),作為查詢的資料結構 。

    https://www.guru99.com/nosql-tutorial.html

    Traditional RDBMS uses SQL syntax to store and retrieve data for further insights.
    Instead, a NoSQL database system encompasses a wide range of database technologies that can store structured, semi-structured, unstructured and polymorphic data.
    Let's understand about NoSQL with a diagram.







    NoSQL is Schema-Free

    Types of NoSQL Databases:

    • Key-value Pair Based
    • Column-oriented Graph
    • Graphs based
    • Document-oriented
    •  








    Comments:


    NoSQL/Key-Value 適用巨量網站,而「關聯式資料庫」還是較適合一般機構的管理資訊系統。






    1.
    MongoDB 學習筆記之一 - 從 NoSQL 談起
    http://garyliutw.blogspot.com/2014/05/mongodb-nosql.html

    2.
    https://www.guru99.com/nosql-tutorial.html

    NoSQL Tutorial: Types of NoSQL Databases, What is & Example

    3.

    TOP 10 Open Source Big Data Databases

    https://bitnine.net/blog-useful-information/top-10-open-source-big-data-databases/


    4.
    非關聯型資料庫(NoSQL)在大數據(Big data)的應用
    https://ba.tchcvs.tc.edu.tw/epapers/course/1031125_01.pdf

    5.
    原來NoSQL之MongoDB資料庫這麼厲害,不學白不學 !
    原文網址:https://kknews.cc/code/mmbk6jz.html

    6.

    MongoDB 教程

    https://www.runoob.com/mongodb/mongodb-tutorial.html

    (1)
    https://www.mongodb.com/
    > software > MongoDB Community Server >Download
    https://www.mongodb.com/try/download/community

    Q&A
    Error domain user name account password incorrect

    Here's the solution for Windows 10(x64):

    • If you don't have a domain (for home or personal computers), leave the domain field with "."
    • If your computer is owned by your company, contact your system administrator and then in the domain field type : Company_Domain

    • In the username field,

      • for personal computers : type your username. If you're signed in with a Microsoft Account, type the email address or the name of your Microsoft Account.

      • for company provided machines : type your username as Company_Domain/Your_Username

    • In the password field type the password not the PIN number (if you've set it up).


    (2)
    以下資料來源:https://www.runoob.com/mongodb/mongodb-window-install.html

    創建資料目錄

    MongoDB 將資料目錄存放在 db 目錄下。但是這個資料目錄不會主動創建,我們在安裝完成後需要創建它。請注意,資料目錄應該放在根目錄下 (如: C:\ 或者 D:\ )

    在本教程中,我們已經在 C 盤安裝了 mongodb,現在讓我們創建一個 data 的目錄然後在 data 目錄裡創建 db 目錄。

    cd C:\

    md "\data\db"

    你也可以通過 window 的資源管理器中創建這些目錄,而不一定通過命令列。

     


    命令列下運行 MongoDB 伺服器

    為了從命令提示符下運行 MongoDB 伺服器,你必須從 MongoDB 目錄的 bin 目錄中執行 mongod.exe 文件。

    C:\mongodb\bin\mongod --dbpath c:\data\db

    >> My example:
    C:\Program Files\MongoDB\Server\4.4\bin>mongod -- dbpath c:\data\db


    如果執行成功,會輸出如下資訊:

    2015-09-25T15:54:09.212+0800 I CONTROL  Hotfix KB2731284 or later update is not

    installed, will zero-out data files

    2015-09-25T15:54:09.229+0800 I JOURNAL  [initandlisten] journal dir=c:\data\db\j

    ournal

    2015-09-25T15:54:09.237+0800 I JOURNAL  [initandlisten] recover : no journal fil

    es present, no recovery needed

    2015-09-25T15:54:09.290+0800 I JOURNAL  [durability] Durability thread started

    2015-09-25T15:54:09.294+0800 I CONTROL  [initandlisten] MongoDB starting : pid=2

    488 port=27017 dbpath=c:\data\db 64-bit host=WIN-1VONBJOCE88

    2015-09-25T15:54:09.296+0800 I CONTROL  [initandlisten] targetMinOS: Windows 7/W

    indows Server 2008 R2

    2015-09-25T15:54:09.298+0800 I CONTROL  [initandlisten] db version v3.0.6

    ……


    連接MongoDB

    我們可以在命令視窗中運行 mongo.exe 命令即可連接上 MongoDB,執行如下命令:

    C:\mongodb\bin\mongo.exe


    >> 新增路徑 set PATH=%PATH%;要新增的路徑 echo %PATH%


    配置
    MongoDB 服務

    管理員模式打開命令列視窗

    創建目錄,執行下面的語句來創建資料庫和日誌檔的目錄

    mkdir c:\data\db

    mkdir c:\data\log

    創建設定檔

    創建一個設定檔。該檔必須設置 systemLog.path 參數,包括一些附加的配置選項更好。

    例如,創建一個設定檔位於 C:\mongodb\mongod.cfg,其中指定 systemLog.path storage.dbPath。具體配置內容如下:

    systemLog:

        destination: file

        path: c:\data\log\mongod.log

    storage:

        dbPath: c:\data\db

    安裝 MongoDB服務

    通過執行mongod.exe,使用--install選項來安裝服務,使用--config選項來指定之前創建的設定檔。

    C:\mongodb\bin\mongod.exe --config "C:\mongodb\mongod.cfg" --install

    要使用備用 dbpath,可以在設定檔(例如:C:\mongodb\mongod.cfg)或命令列中通過 --dbpath 選項指定。

    如果需要,您可以安裝 mongod.exe mongos.exe 的多個實例的服務。只需要通過使用 --serviceName --serviceDisplayName 指定不同的實例名。只有當存在足夠的系統資源和系統的設計需要這麼做。

    啟動MongoDB服務

    net start MongoDB

    關閉MongoDB服務

    net stop MongoDB

    移除 MongoDB 服務

    C:\mongodb\bin\mongod.exe --remove

    命令列下運行 MongoDB 伺服器  配置 MongoDB 服務 任選一個方式啟動就可以。

    任選一個操作就好


    MongoDB 後臺管理 Shell

    如果你需要進入MongoDB後臺管理,你需要先打開mongodb裝目錄的下的bin目錄,然後執行mongo.exe檔,MongoDB ShellMongoDB自帶的互動式Javascript shell,用來對MongoDB進行操作和管理的互動式環境。

    當你進入mongoDB後臺後,它預設會連結到 test 文檔(資料庫):

    > mongo

    MongoDB shell version: 3.0.6

    connecting to: test

    ……

    由於它是一個JavaScript shell,您可以運行一些簡單的算數運算:

    > 2 + 2

    4

    > 

    db 命令用於查看當前操作的文檔(資料庫):

    > db

    test

    > 

    插入一些簡單的記錄並查找它:

    > db.runoob.insert({x:10})

    WriteResult({ "nInserted" : 1 })

    > db.runoob.find()

    { "_id" : ObjectId("5604ff74a274a611b0c990aa"), "x" : 10 }

    > 

    第一個命令將數字 10 插入到 runoob 集合的 x 欄位中。

     

    ******
    (Good Exercises)

    (3)
    資料來源:
    http://blogs.uuu.com.tw/Articles/post/2016/06/15/MongoDB%E5%85%A5%E9%96%80-(1).aspx

    MongoDB 入門

    載入測試資料

    從官網以下網址下載範例資料庫,存成primer-dataset.json檔案:

    https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

    開新的命令提示字元,執行mongoimport.exe,輸入以下指令,匯入primer-dataset.json檔案中的資料到test資料庫:

    mongoimport --db test --collection restaurants --drop --file c:\temp\Mongo\primer-dataset.json

    ......
    (修正:)
    Mongo.exe是一個JavaScript 主控台程式,因此你可以透過JavaScript程式碼與之互動。例如以下例子,利用var關鍵字宣告一個「name」變數,並設定它的值為「'Berkely」,接著印出name的值:
    > var name='Berkely';
    > name;

    *******
    MongoDB Database Tools 需另行安裝
    如 mongostst, mongostop
    查詢 伺服器的運行狀態
    https://fastdl.mongodb.org/tools/db/mongodb-database-tools-windows-x86_64-100.3.1.zip


    (課後習作)

    (1) 將以下的 台灣人口資料 .csv 檔 (taiwan-people 下)匯入 資料庫,也
    (2) 將 台灣人口資料 .bson 檔 (dump/taiwan 下)還原到 資料庫 [download]
    (3) 將 台灣人口資料庫 匯出 (備份) 到 .json 檔 
    (4) 將 台灣人口資料庫 匯出 (備份) 到 .csv 檔 


    (1)
    C:\Users\luo>mongoimport -d test -c people3 --type csv --file .\taiwan-people\opendata10712M010.csv --headerline

    <CHECK>
    C:\Users\luo>mongoimport -d test -c people3 --type csv --file .\taiwan-people\opendata10712M010.csv --headerline
    2021-03-31T20:53:42.513+0800    connected to: mongodb://localhost/
    2021-03-31T20:53:42.682+0800    7761 document(s) imported successfully. 0 document(s) failed to import.
     
    C:\Users\luo>mongo
    ......
    > show dbs
    admin   0.000GB
    config  0.000GB
    local   0.000GB
    ntut    0.000GB
    runoob  0.001GB
    test    0.011GB
    > use test
    switched to db test
    > show collections
    people
    people2
    people3
    restaurants
    runoob
    >




    (2)
    mongorestore -d test dump/taiwan/

    (3)
    C:\Users\luo>mongoexport  -d test -c people2 -o  ./test8.json

    (4)
    C:\Users\luo>mongoexport --db test --collection people2 --type=csv --fields _id,statistic_yyymm,site_id,village,birth_to
    tal --out ./test7.csv

    7.
    (1)

    關於PostgreSQL與MongoDB在NoSQL方面的簡單對比

    https://www.itread01.com/content/1546538796.html

    (2)

    PostgreSQL何以支援豐富的NoSQL特性?

    https://www.itread01.com/hkxqhkx.html



    (3)
    Postgres NoSQL Overview
    https://www.enterprisedb.com/postgres-nosql-overview


    8.

    SQL-NoSQL Cheat Sheets

    https://ugoproto.github.io/ugodoc/sql_nosql_cs/




    9.
    Big Data and NoSQL
    http://faculty.juniata.edu/rhodes/dbms/nosql.htm


    10

    Big Data with NoSQL - Aspire Systems


    https://www.aspiresys.com/WhitePapers/BigData_with_NoSQL_Whitepaper.pdf?pdf=nosql-whitepaper
    全部共 0則留言
    登入帳號密碼代表遵守學術網路規範


    文章分類 Labels


    最新文章 Top10

    中華科技大學數位化學習歷程 - 意見反應