發表文章

建立一個 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...

更換家用抽水馬達紀錄

圖片
更換家用抽水馬達紀錄(以加壓馬達替代) ,身為一個專業的 IT 人員,更換一下設備也是很正常的。 昨晚 洗澡到一半,突然發現水量變小了 。感覺好像有點不妙,上樓檢查了一下。發現 三年前安裝的那台 AQ200 馬達 的電子LED沒有亮燈,但是電力 110V 有進入馬達。猜想說該不會電路板燒了巴!!!  因為水龍頭還有水只是水量沒有加壓,且已經很晚了就先這樣隔天早上在處理。 到了更晚的時候發現不是水量變小,是整個沒水了 。一時間無法找到原因,只能上網找找看答案。 根據官方網站的判斷,我先懷疑機器故障,隔天早上直接就去買台新的大井  HQ200  ($3000)1/4HP準備更換機器,但要換的時候才發現竟然是水塔沒水,檢查液位開關發現都沒有反應,手動開關還是無法出水。 開始懷疑是樓下抽水馬達的問題,馬上再去換了台 大井 HQ400 ($3500)1/2HP的機器。原本這台 木川KQ400 前幾天聽他的馬達生,就感覺怪怪的要轉不轉的。 抽水馬達 木川KQ400 ,左方開關為連接到水塔的液位開關。 先確認電力有進入,但馬達不能動作。google查了很多人的狀況,都說 可能是壓力感應開關有問題 ,所以我先依據網路上的教學, 拔除開關 Q 這條線,以一字起直接將兩個 pin 測試短路,但還是無法啟動 ,所以就懷疑應該是馬達真的掛了,用了快 10 年掛掉應該也合理啦。 測試是否為KQ400 的壓力感應開關故障 新品 大井 HQ400 很重要:更換前,請先把抽水馬達的電源開關,從開關箱處關閉。 直接拆掉舊有的 KQ400 ,管口、固定位位置幾乎都一樣。 現在的電壓選擇變得更方便了,直接一個開關就決定 110V or 220V 了。 再把110V電力接上去就可以,安裝前記得先打開自來水公司的來源水閘,上方水管是往水塔打水。左方開關是接到頂樓水塔的液位開關,頂樓液位開關滿水位關閉,馬達沒電也就不會啟動了。 注水塞 後記: 1. 下方水管閘閥為自來水公司的水,直接打開就有水了更換前記得要關閉。 2. 送電前先把機器上面的 注水塞打開,注滿水 。也可以打開下方水管閘閥注水,這樣比較快。 3. 送電後,試著旋開 1/4 注水塞,看有沒有水噴出來,有噴出來表示抽...

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 ...

將 CSV 檔案加上 UTF BOM 讓它可以在 Windows 被 EXCEL 正確的開啟沒有亂碼的問題

圖片
將 CSV 檔案加上 UTF BOM 讓它可以在 Windows 被 EXCEL 正確的開啟沒有亂碼的問題 在 UTF-8 文件中放置 BOM 主要是微軟系統的習慣。但是真的沒有必要帶拉!!!! http://stackoverflow.com/questions/2223882/whats-different-between-utf-8-and-utf-8-without-bom According to the Unicode standard, the BOM for UTF-8 files is not recommended: 圖片和內文不太相關 下面提供一種在 windows 上面,政治正確的解法。 XDXD // ======================================================== // 產生現在的秒數 $time_string = date("YmdHis"); // 寫入 utf8 with BOM function writeUTF8File($filename,$content) {     $f = fopen($filename, 'w');     fwrite($f, pack("CCC", 0xef,0xbb,0xbf));     fwrite($f,$content);     fclose($f); } $f = 'uploads/private/'.$time_string.'.csv'; $fdir = 'uploads/private/'; // 檔案不存在就先建立檔案 if (!file_exists($fdir)) {     mkdir($fdir); } writeUTF8File($f,$csv); echo 'CSV 輸出完成,請點選 連結 下載。 '; // ========================================================

取得 mysql 資料表中的「欄位名稱」以及「欄位註解」

圖片
取得 mysql 資料表中的「欄位名稱」以及「欄位註解」 在 MySQL 資料庫中,宣告資料表的過程,可以一併把欄位名稱寫在 COMMENT 選項中,如果在程式可以把這個 COMMENT 也抓出來配合欄位的名稱,可以產生自動把整個表 DUMP 出來成為一個 CSV 不就很方便。 圖片和內文不太相關 // ----------------------------------------------- $table='表格名稱'; // 資料庫中表的欄位抬頭資訊 $col_sql = "SELECT COLUMN_NAME,COLUMN_COMMENT FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '$table';"; $col = runSQL($col_sql); // var_dump($col); // 資料欄位 $sql = "SELECT * FROM `$table` WHERE 1;"; $row = runSQL($sql); // var_dump($row); $csv = ''; // 欄位名註解 //echo " "; for($i=1;$i<$col[0];$i++){ //echo $col[$i]->COLUMN_COMMENT.", ";  $csv = $csv.$col[$i]->COLUMN_COMMENT.", "; } $csv = $csv."\n"; // 欄位名稱 //echo " "; for($i=1;$i<$col[0];$i++){ //echo $col[$i]->COLUMN_NAME.", ";  $csv = $csv.$col[$i]->COLUMN_NAME.", "; } $csv = $csv."\n"; // 資料列取得欄位 //echo " ...

mysql 中文亂碼的避免及 php mysql pdo 宣告取用方式

圖片
Mariadb 和 Mysql 都會有亂碼, 只要它預設編碼還是在 latin 的時還是一直會發生. 所以改成 utf8 編碼是一個對於東亞語系的文字,會比較方便。 UTF8 的介紹請看 wiki https://zh.wikipedia.org/wiki/UTF-8 xxx_bin (區分大小寫) xxx_general_ci (不區分大小寫) Collation 每個字符集的排序規則 http://dev.mysql.com/doc/refman/5.0/en/charset-unicode-sets.html 在 mysql 資料庫中有兩個編碼系統 UCS2 及 UTF8 utf8 使用 1~3 bytes ,帶有 65536 個組合的編碼 utf32 與 utf8mb4 是完整的的 unicode ,差異在 utf32 固定 4 bytes ,而 utf8mb4 則是彈性使用 1~4 bytes 。 utf8mb4 從 MySQL 5.5.3 (released March 2010). 開始提供 目前預設的編碼系統為 xxx_general_ci (default) 為了中文語系使用不要出問題,建議修正如下: ----------------------------------------------------- # 修正 mysql 的設定檔 [root@c7 my.cnf.d]# more /etc/my.cnf.d/my-huge.cnf  [client] default-character-set=utf8mb4 [code] default-character-set=utf8mb4 [mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_general_ci # restart mysql service # 檢查系統的編碼變數 ---------------------------- [root@c7 my.cnf.d]# mysql -u root -p Enter password: MariaDB [(none)]> SHOW VARIABLES WHERE Variab...

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 ...