2014-01-01から1年間の記事一覧

redisめも

download Download – Redis Redisサーバ起動 > redis-server redis.conf Redisクライアント起動 > redis-cli Document redisドキュメント日本語訳 — redis 2.0.3 documentation Redis Command クライアント終了 > exit 内容をdumpしてサーバーを終了 > shutd…

MySQL高速化めも

1.コミット頻度を減らす 数千件単位で明示的にcomit 増やしすぎても効果ない 2.バルクインサート インサート文はまとめて(クエリ長を気にしつつ) × INSERT hoge INTO VALUES (1,'a'); INSERT hoge INTO VALUES (2,'b'); ... ○ INSERT hoge INTO VALUES (1,…

文字列操作

Hiveの文字列操作で使ったUDFメモ split split(string str, string pat) 文字列を指定パターンで分割する |datetime +-------------------- |2014/07/17 13:30:00 split(datetime,' ')[0] > 2014/07/17 split(datetime,' ')[1] > 13:30:00 regexp_replace re…

GROUP毎の上位N位抽出

MySQLでGROUP BYした時に最初のN件を抽出する方法メモ How to select the first/least/max row per group in SQL | Xaprb に載っているユーザ変数を使う方法が簡単そう テーブル +----+-------+ | id | chara | +----+-------+ | 1 | A | | 2 | C | | 3 | B …

ファイル分類

はじめてのpigメモ 複数のファイルから種別毎にファイルを分類する logfile1 type message LOG0001 MESSAGE1 LOG0001 MESSAGE2 ... ... LOG0004 MESSAGE15 logfile2 ... 4 pigコマンド pig -x local -x local でローカル実行(なしでhadoopモード) Pig Lati…

大量INSERT

TableA(1000万件)から100万件をTableBにInsertしたい ・1件ずつコミット while ($i <= 1000000){ $sql=qq{ insert into TableB select id,str from TableA where id=$i }; $dbh->do($sql); $dbh->commit(); $i++; } 処理時間 16分58秒 ・1万件ずつコミット $…

MAPJOINメモ

table_m : 10000件 table_a : 1000件 table_b : 1000件 select count(*) from table_m m join table_a a on (m.link1=a.id) join table_b b on (m.link2=b.id) Time taken: 42.128 seconds MapJoin メモリにハッシュテーブルを持ってMapフェーズのみでJoinを…

ジョブ関連メモ

ジョブをバックグラウンドで実行 (ジョブ) & ログアウト後も実行させ続ける nohup (ジョブ) & 実行途中でバックに移す Ctrl + Z # bg Linuxコマンド集 - 【 nohup 】 ログアウトした後もコマンドを実行し続ける:ITpro Linuxコマンド集 - 【 & 】 コマンドを…

1年くらいのまとめ

開発インフラ SCM Subversion,Git BTS JIRA CI CruiseControl IDE Eclipse(pleiades) マシンはWindows やったこと API実装 HTTPリクエストからバックに問い合わせてJSONを返却 テストコードはJUnit Java maven JavaServlet Spring Jersey ログ解析アプリ ロ…

XMinメモ

ForceArray 配列前提で値を取っていく時 要素数1の場合、配列として読まれないのでForceArrayする my $data = $xml->XMLin($target_file,ForceArray => ['playlist']); while ($i<$MAX) { my $Id = $data->{'List'}[$i]->{'Item'}->{'Id'}; $i++; 値チェック…

ESCAPE BY

MySQLでテーブルに一部データが正常に登録されていない MySQL :: MySQL 5.1 リファレンスマニュアル :: 12.2.5 LOAD DATA INFILE 構文 \はデフォルトのエスケープ文字として読まれているらしい LOAD DATA LOCAL INFILE 'FILEPATH' INTO TABLE TABLE FIELDS E…

シーケンスファイルテーブルにテキストファイルをloadする方法

シーケンスファイルフォーマットで作ったテーブルにテキストファイルを入れたい時 CREATE TABLE table ( val1 string, val2 string ) STORED AS SEQUENCEFILE likeしてalter tableすればスキーマをハードコードせずに済む CREATE TABLE work_table LIKE tabl…

特殊文字のエスケープシーケンス

HIVEで文字列を|区切りにしたい時 SPLIT('a|bb|ccc','¥¥|') でHIVEコマンドは動くんだけど hive -e " SPLIT('a|bb|ccc','¥¥|') " の時うまく動かない 結局 hive -e " SPLIT('a|bb|ccc','¥¥¥|') " で¥3つつけるとうまいこといけました 詳しいことはわからんけ…

map

for,foreachとほぼ同じだが変換を明示的にできる #!/usr/bin/perl my %testmap={ 'hoge' => 'A' , 'foo' => 'B' , 'bar' => 'C' }; my @keys=('hoge','foo','bar'); my @result = map { $testmap{$_}; }@keys; print join(',',@result) . '\n'; --- A,B,C

select

fetchとselect selectrow_array は prepare excute fetchrow_array の処理をまとめたメソッド DBIの使い方 #!/usr/bin/perl use DBI; my $data_source = 'DBI:mysql:test:localhost:3306'; my $user = 'user'; my $pass = 'pass'; my $dbh = DBI->connect($d…

複数のCOUNT

条件の異なる複数のCOUNTを1クエリでやりたい select count(1), count(if(a=0,1,null)), count(if(b>0,1,null)) from test 【SQL】複数の条件のcountを1回の問い合わせでおこなう at softelメモ

HIVEでgroup by

selectするカラムをgroup byしないといけない select a,b,c from test group by a する場合 select a,b,c from test group by a,b,c みたいにする select a b count(c) from test group by a,b countやsum等はgroup byしなくてもOK LanguageManual GroupBy -…

InnoDBでTRUNCATEした時のibdファイル

古いInnoDBではテーブルをTRUNCATEしてもibdファイルは再利用用にのこるらしい 古いバージョンのInnoDBだとTRUNCATE TABLEしてもデータファイルのサイズが減らない件 - shimxmemo 検証 テーブル作成して適当にデータを入れる CREATE TABLE test (hoge VARCHA…

テーブルが存在するか確認する方法

perl,DBIでテーブルが存在するか確認する方法 # table_nameというテーブルが存在するかどうか $sql = qq{ show tables like 'table_name'; }; $sth = $db->prepare ($sql); $tbl = $sth->execute (); $sth->finish; $db->commit (); if ($tbl != '0E0'){ # …

テーブル作成時InnoDBが勝手にMyISAMになる

InnoDBが有効か確認 mysql> show variables like 'have_innodb' +---------------+-------+ Variable_name Value +---------------+-------+ have_innodb NO +---------------+-------+ 1 row in set (0.00 sec) なってない ログを見てみる InnoDB: Error: l…