發表文章

目前顯示的是有「postgresql」標籤的文章

PostgreSQL 使用的 timestamp 變更 timezone 很簡單

圖片
PostgreSQL 使用的 timestamp 變更顯示的 timezone 很簡單 只要把 select 欄位後方加上  AT TIME ZONE ' EST '  就可以 這裡的  'EST' 指的是美東時間,縮寫可以參考官方說明。 https://www.postgresql.org/docs/8.1/static/datetime-keywords.html  範例SQL: SELECT id, transaction_time,to_char((transaction_time AT TIME ZONE 'CCT')  , 'YYYY-MM-DD  HH24:MI:SS' )  as cct_transaction_time,  to_char((transaction_time AT TIME ZONE 'EST')  , 'YYYY-MM-DD  HH24:MI:SS' )  as est_transaction_time   FROM root_memberdepositpassbook WHERE member_id = '45'  ORDER BY est_transaction_time DESC LIMIT 10; https://www.postgresql.org/docs/9.5/static/functions-formatting.html  關於欄位的輸出格式官方網站也有說明,可以讓你以你想的方式輸出。直接再 SQL 敘述指定就可以。 -- 北京時間 SELECT enrollmentdate, to_char((enrollmentdate AT TIME ZONE 'posix/Etc/GMT-8'),'YYYY-MM-DD HH24:MI:SS') as enrollmentdate_tz FROM root_member WHERE id = '45'; -- 美東時間 SELECT enrollmentdate, to_char((enrollmentdate AT TIME ZONE '...

pgadmin install in Linux Mint 17.3 ROSA

圖片
pgadmin install in Linux Mint 17.3 ROSA bash <(cat /etc/os-release; echo 'echo ${VERSION/*, /}') | head -n1 | awk '{print "deb http://apt.postgresql.org/pub/repos/apt/",tolower($1)"-pgdg main";}' > /etc/apt/sources.list.d/pgdg.list wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get install pgadmin3 三行就搞定了,去選單找找看 pgadmin 就升級為 1.21 了。 REF: http://technobytz.com/how-to-install-postgresql-9-4-in-ubuntu-linux-mint.html

PostgreSQL的數值資料型態(Numeric Data Types)

圖片
PostgreSQL的數值資料型態(Numeric Data Types) 今天仔細看數值資料型態時,才仔細看到 postgresql 的數值型態其中一種為 numeric 的型態,中文翻譯為「任意精度數值」,一直間無法理解他的意思,後來才發現它可以讓用戶自行定義十進位的位數及小數點後面的位數。難怪科學運算都喜歡用 postgresql DB 來操作,一般生活中的應用實在太少運用到麼大的需求。 在最新的 9.5 版它的範圍描述是這樣寫的 up to 131072 digits before the decimal point; up to 16383 digits after the decimal point 如果我解讀沒錯的話,在小數點前可以 131072 位數,在小數點後為 16383 位數。大概以後只有十兆換一塊的通膨才有可能有機會用到了(誤)。 例如: 數字 23.5141 的 精度(precision)為 6 而比例(scale)為 4 宣告格式為: NUMERIC(precision, scale) NUMERIC(6, 4) 在 pgadmin 工具中的設定範例如下: 程式語言上運算的問題: 但其實宣告了這個欄位型態後,匯衍生出另一個問題。就是 DB 可以操作這個數字運算操作,但是程式語言有困難呀!!!找了一下,好像 PHP 的 BCMATH 好像可以解決任意精確度運算的這個問題,下次有遇到再來研究巴。 http://php.net/manual/zh/ref.bc.php # 9.5 版的 DATA TYPE 描述 https://www.postgresql.org/docs/9.5/static/datatype-numeric.html # 中文 8.0 版的 DATA TYPE http://twpug.net/docs/postgresql-doc-8.0-zh_TW/datatype.html#DATATYPE-NUMERIC-DECIMAL

建立一個 postgresql 帳號 with MADLIB 的範例:

圖片
以 http://ooxx.db.com.tw/phpPgAdmin/  phpPgAdmin 當範例  建立一個 postgresql 帳號 with MADLIB 的範例 (1) 因為系統內已經有個 hadoop 帳號建立 MADLIB 的函數 以這個當範本就可以. 否則重新匯入需要 super user 帳號會很不方便。 如果需要重新建立,請參考   http://blog.jangmt.com/2016/04/madlib-postgresql-94-in-linux.html 文章設定。 (2) 建立的 SQL 範例 , 需要一行一行填入. 預設不允許多行一起進入 sql -- 建立使用者 CREATE USER 帳號 WITH PASSWORD '密碼'; -- 建立資料庫 CREATE DATABASE 帳號(同DB) WITH OWNER 帳號 ENCODING 'UTF8' TEMPLATE hadoop; -- 註解 DB , 方便找人 COMMENT ON DATABASE 帳號 IS '使用者資訊註解'; -- 授權 GRANT ALL PRIVILEGES ON DATABASE 帳號 to 帳號(同DB); (3) sql 範例如下: CREATE USER b004021234 WITH PASSWORD '1234atl1234'; CREATE DATABASE b004021234 WITH OWNER b004021234 ENCODING 'UTF8' TEMPLATE hadoop; COMMENT ON DATABASE b004021234 IS '蔡ooxx 0926123456'; GRANT ALL PRIVILEGES ON DATABASE b004021234 to b004021234; (4) 如果要一次建立很多人,那就以此範本寫成批次處理就可以。 REF: http://blog.jangmt.com/2016/04/madlib-postgresql-94-in-linux.html  http://madlib.incubator.ap...

Postgresql 上面的「尿布、啤酒、星期五」,不用寫程式下行 SQL 就搞定

圖片
MADlib + postgresql 9.4 in Linux CentOS 7 MADlib®: Big Data Machine Learning in SQL for Data Scientists 啤酒、尿布、星期五 MADlib 在 postgresql 上面以是以 postgres 函式的型態來實現對於數據資料的操作 ,你可以透過這個以 plpython 語言寫的函式,直接操作原始數據轉存到新的資料庫當中,這個函式庫支援很多機器學習的演算法,可以很方便的分析數據. 目前提供的有底下這些,看起來應該有陸續發展的可能,因為已經被放到 Apache 基金會的子項目計畫內了...XDXD 功能: Classification 分類 Regression 回歸 Clustering 集群 Topic Modeling 主題模型 Association Rule Mining 關聯性規則 Descriptive Statistics 描述性統計 Validation 驗證 more... http://madlib.net/product/ 官方網站 http://madlib.net/ 我使用來安裝的版本是 CentOS Linux 7 ,但是安裝這個 LIB 前請先選擇一套支援的資料庫系統,這裡我用的是 Postgresql 9.4 的版本,安裝請參考這一篇: http://blog.jangmt.com/2016/03/postgresql-94-in-centos-linux-7.html 下載 http://madlib.net/download/ 安裝 [root@c7 ~]#    yum install madlib-1.8-Linux.rpm  -y 檢查是否裝了,安裝好後他的路徑放在 /usr/local/madlib/ [root@c7 ~]# rpm -qa | grep madlib madlib-1.8-1.x86_64 我使用 Single Node 的模式,系統需求:( HAWQ >= 1.2, Greenplum >= 4.2 or PostgreSQL >= 9.2 ) 在安裝後,這特 MADlib ...

PostgreSQL 9.4 in CentOS Linux 7 簡易安裝教學

圖片
PostgreSQL 9.4 in CentOS Linux 7 # 安裝下載 http://www.postgresql.org/download/linux/redhat/ # 安裝 REPO 來源檔 yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm  -y # 安裝主要資料庫程式 yum install postgresql94-server postgresql94-contrib -y /usr/pgsql-9.4/bin/postgresql94-setup initdb systemctl enable postgresql-9.4.service systemctl start postgresql-9.4.service # 裝好後所有的設定檔及紀錄檔都在 /var/lib/pgsql 這個目錄內 [root@c7 ~]# ls /var/lib/pgsql -la total 8 drwx------.  3 postgres postgres   36 Mar 23 09:27 . drwxr-xr-x. 70 root     root     4096 Mar 23 09:27 .. drwx------.  4 postgres postgres   48 Mar 23 09:27 9.4 -rwx------.  1 postgres postgres  267 Mar 23 09:27 .bash_profile # 確認帳號 [root@c7 ~]# id postgres uid=26(postgres) gid=26(postgres) groups=26(postgres) # 切換使用者,並且登入系統設定 [root@c7 ~]# su - postgres -bash-4.2$ psql template1 psql (9.4.6) Type "help" for help. # 建立一個使用者為 mtchang ...

PostgreSQL 9.2 及多主機 Replication 複製機制設定

PostgreSQL 9.2 及多主機同步複製機制設定 PostgreSQL install 9.2(CentOS 6.x) CentOS 6.X 版本的 postgresql 是 8.4 版,很多機制還沒有很完備。如果只是一般的使用是足夠,但如需要使用 replication 的功能,建議安裝 9.0 以上版本,比較不會有使用上面的限制。且 9.0 以上版本有很多機制可以選擇(例如:Slony-I Replication),但我選擇內建簡單設定的版本來完成我簡單備份的目的。 如果需要有複製的機制,建議更新到最新版本的 postgresql ,最新穩定版為 postgresql 9.2 版本 如果之前有預設的 postgresql 請先備份、關閉及移除,避免錯亂。在 centos 的 yum remove or rpm remove 機制並不會將 data 目錄移除,但仍建議如果有資料記得用 pg_dump_all 備份出來再做後續的變更。 [root@power pgsql]# /etc/init.d/postgresql stop Stopping postgresql service: [ OK ] [root@power pgsql]# chkconfig postgresql off 9.2版的安裝,參考官方網站 http://www.postgresql.org/download/linux/redhat/ # 安裝 yum repo , 及軟體啟動 DB [root@powerful ~]# rpm -i http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-redhat92-9.2-7.noarch.rpm [root@powerful ~]# yum install -y postgresql92-server postgresql92-contrib [root@powerful ~]# service postgresql-9.2 initdb [root@powerful ~]# chkconfig postgresql-9.2 on # 9.2 版預設路徑 [roo...

在 RHEL/CENTOS 6 Debian Linux 上使用 PostgreSQL資料庫

圖片
Contents 1 ABOUT 2 在RHEL/CENTOS 上使用 PostgreSQL資料庫 2.1 PostgreSQL 2.2 為何要用postgresql? 2.3 PostgreSQL 的安裝 2.3.1 postgresql 的套件安裝 2.3.2 在資料庫系統上,建立使用者與資料庫 2.4 更改 PostgreSQL 的登入認證模式 2.5 安裝 PostgreSQL 管理工具 2.6 建立使用者及匯入資料 2.6.1 建立使用者 2.6.2 建立資料庫 2.6.3 匯入資料 2.6.4 匯出資料 2.6.5 shell script 建立使用者資料 2.7 參考資料 3 debian 安裝 postgresql 資料庫 3.1 安裝 phpPgAdmin 管理介面 3.2 大量建立帳號及匯入資料 ABOUT 安裝 postgresql 在 debian linux or centos linux 在RHEL/CENTOS 上使用 PostgreSQL資料庫 PostgreSQL PostgreSQL是自由的關聯式資料庫伺服器(DBMS),授權模式採取 BSD 授權許可最大好處是可以用於商業營運或修改成為自己的產品一部分而無須支付任何費用也不必擔心需要將修改過後的原始碼公開等眾多GPL授權軟體需要面對的 問題。它具有商業資料庫絕大部分的功能,對於中小企業的應用十分的足夠。相較於 MySQL 這開放的資料庫系統,他有更完整的關聯式資料庫功能及優秀的穩定性。 為何要用postgresql? 為何要用轉用 postgresql? 我需要一個可以商業化的資料庫:PostgreSQL 採用授權較為寬鬆的 BSD 授權,對於商業公司而言不用擔心日後 PostgreSQL 的開發人員突然反悔改成其他授權模式的影響。 一個強大的資料庫引擎:交易、觸發、內存程序等完整的關聯式資料庫機制,提供開發人員在開發過程中更方便的操作。 一個取得容易,價格低廉的資料庫引擎:自由的BSD授權提供最便宜的成本。世界各地都有相關的 Mirror site。 商用資料庫知名產品經常的更新...