<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>秘密小黑屋 &#187; database</title>
	<atom:link href="http://www.fhand.com/blog/archives/tag/database/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fhand.com/blog</link>
	<description>David&#039;s black room</description>
	<lastBuildDate>Wed, 23 Nov 2011 05:10:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Use crontab to finish works which will deal with access logs and load into infobright database</title>
		<link>http://www.fhand.com/blog/archives/388.html</link>
		<comments>http://www.fhand.com/blog/archives/388.html#comments</comments>
		<pubDate>Thu, 21 Jul 2011 09:46:24 +0000</pubDate>
		<dc:creator>weige</dc:creator>
				<category><![CDATA[技术收集]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[infobright]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[resin]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[优化mysql]]></category>

		<guid isPermaLink="false">http://www.fhand.com/blog/?p=388</guid>
		<description><![CDATA[在昨天的文章中，我们讲述了如何使用Python来访问Java程序，在今天我们继续聊聊脚本的知识。最近由于业务的需要，给数据运维人员搞了个先进的数据查询引擎-Infobright,有关infobright的鼎鼎大名早已经是如雷贯耳，数据压缩上确实很牛叉，可以参考《Infobright数据仓库搭建》和《Infobright的数据类型以及优化相关》。这几篇都跟mysql优化类似，但是略有不同还是注意的好，为了更好的优化效果，比如我在创建数据库表的时候就把原来的Varchar类型的字段创建成了Char，因为varchar的效率很低。 数据引擎搭建起来了，接下来我们需要自动的把数据加载到我们的数据库，由于众所周知的原因，目前社区办的ICE只支持load加载数据，所以我们得把我们的日志文件先处理成Infobright能够接受的类型，比如常见的csv格式。然后使用脚本自动的把我们的结果数据搞到数据库里面就可以了。 第一个脚本，完成日志目录的创建，日志合并，日志处理 #!/bin/sh &#160; export LOG_DIR=/data1/remote-log-server/log/ today=`date &#34;+%Y-%m-%d&#34;` yestoday=`date -d '1 days ago' &#34;+%Y-%m-%d&#34;` &#160; GameLoginPath=$LOG_DIR/gamelogin/$today &#160; #merge yesterday log /bin/cat $LOG_DIR/gamelogin/$yestoday/gamelogin.log.* &#62; $LOG_DIR/gamelogin/$yestoday/gamelogin.log #use python script deal with access log to infobright data format /usr/bin/python /data1/weige/python/gamelogin_weige.py $yestoday 99 #auto load data which can be accepted by infobright engine /bin/sh /data1/remote-log-server/update_data_to_db.sh $yestoday &#160; #create [...]]]></description>
			<content:encoded><![CDATA[<p>在昨天的文章中，我们讲述了如何使用<a href="http://www.fhand.com/blog/archives/384.html" target="_blank" title="How to use jpype utilities to help python script access java code">Python来访问Java程序</a>，在今天我们继续聊聊脚本的知识。最近由于业务的需要，给数据运维人员搞了个先进的数据查询引擎-Infobright,有关infobright的鼎鼎大名早已经是如雷贯耳，数据压缩上确实很牛叉，可以参考<a href="http://www.fhand.com/blog/archives/295.html" target="_blank" title="How to create mysql database with infobright engine">《Infobright数据仓库搭建》</a>和<a href="http://www.fhand.com/blog/archives/309.html" target="_blank" title="Data types of Infobright engine and Optimize reference">《Infobright的数据类型以及优化相关》</a>。这几篇都跟mysql优化类似，但是略有不同还是注意的好，为了更好的优化效果，比如我在创建数据库表的时候就把原来的Varchar类型的字段创建成了Char，因为varchar的效率很低。<br />
数据引擎搭建起来了，接下来我们需要自动的把数据加载到我们的数据库，由于众所周知的原因，目前社区办的ICE只支持load加载数据，所以我们得把我们的日志文件先处理成Infobright能够接受的类型，比如常见的csv格式。然后使用脚本自动的把我们的结果数据搞到数据库里面就可以了。<br />
第一个脚本，完成日志目录的创建，日志合并，日志处理</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/bin/sh</span>
&nbsp;
export LOG_DIR=/data1/remote-log-server/log/
today=<span style="color: #66cc66;">`</span>date <span style="color: #483d8b;">&quot;+%Y-%m-%d&quot;</span><span style="color: #66cc66;">`</span>
yestoday=<span style="color: #66cc66;">`</span>date -d <span style="color: #483d8b;">'1 days ago'</span> <span style="color: #483d8b;">&quot;+%Y-%m-%d&quot;</span><span style="color: #66cc66;">`</span>
&nbsp;
GameLoginPath=$LOG_DIR/gamelogin/$today
&nbsp;
<span style="color: #808080; font-style: italic;">#merge yesterday log</span>
/bin/cat $LOG_DIR/gamelogin/$yestoday/gamelogin.<span style="color: black;">log</span>.<span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&gt;</span> $LOG_DIR/gamelogin/$yestoday/gamelogin.<span style="color: black;">log</span>
<span style="color: #808080; font-style: italic;">#use python script deal with access log to infobright data format</span>
/usr/bin/python /data1/weige/python/gamelogin_weige.<span style="color: black;">py</span> $yestoday <span style="color: #ff4500;">99</span>
<span style="color: #808080; font-style: italic;">#auto load data which can be accepted by infobright engine</span>
/bin/sh /data1/remote-log-server/update_data_to_db.<span style="color: black;">sh</span> $yestoday
&nbsp;
<span style="color: #808080; font-style: italic;">#create today log dir</span>
<span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: black;">&#91;</span> <span style="color: #66cc66;">!</span> -d <span style="color: #483d8b;">&quot;$GameLoginPath&quot;</span> <span style="color: black;">&#93;</span><span style="color: #66cc66;">;</span> then
        /bin/mkdir -p <span style="color: #483d8b;">&quot;$GameLoginPath&quot;</span>
fi</pre></div></div>

<p>接下来的章节，我们将详细分拆解释我们这个脚本中间运行的这三个脚本,同时进一步对resin容器进行优化。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fhand.com/blog/archives/388.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[数据库]查询当前节点以及所有的下一节点的ID</title>
		<link>http://www.fhand.com/blog/archives/42.html</link>
		<comments>http://www.fhand.com/blog/archives/42.html#comments</comments>
		<pubDate>Thu, 10 Sep 2009 10:50:31 +0000</pubDate>
		<dc:creator>david</dc:creator>
				<category><![CDATA[技术收集]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[数据库]]></category>
		<category><![CDATA[查询节点]]></category>

		<guid isPermaLink="false">http://www.fhand.com/blog/?p=42</guid>
		<description><![CDATA[以前工作中会有比较多的SQL，但一直没有总结~ 很多都忘记了…在此做个笔记备忘 查询当前节点以及所有的下一节点的ID 表结构: Field Type Collation Null Key Default Extra Privileges Comment ——— —————- ————— —— —— ——- ————– ——————————- ——- id int(10) unsigned (NULL) NO PRI (NULL) auto_increment select,insert,update,references parent_id int(10) unsigned (NULL) YES (NULL) select,insert,update,references name varchar(255) utf8_general_ci YES (NULL) select,insert,update,references form_id int(11) (NULL) YES (NULL) select,insert,update,references path varchar(255) utf8_general_ci YES (NULL) [...]]]></description>
			<content:encoded><![CDATA[<p>以前工作中会有比较多的SQL，但一直没有总结~ 很多都忘记了…在此做个笔记备忘</p>
<blockquote><p>查询当前节点以及所有的下一节点的ID</p></blockquote>
<p>表结构:<br />
Field      Type              Collation        Null    Key     Default  Extra           Privileges                       Comment<br />
———  —————-  —————  ——  ——  ——-  ————–  ——————————-  ——-<br />
id         int(10) unsigned  (NULL)           NO      PRI     (NULL)   auto_increment  select,insert,update,references<br />
parent_id  int(10) unsigned  (NULL)           YES             (NULL)                   select,insert,update,references<br />
name       varchar(255)      utf8_general_ci  YES             (NULL)                   select,insert,update,references<br />
form_id    int(11)           (NULL)           YES             (NULL)                   select,insert,update,references<br />
path       varchar(255)      utf8_general_ci  YES             (NULL)                   select,insert,update,references</p>
<div>
<ol title="Double click to hide line number." ondblclick="linenumber(this)">
<li>select a.*,group_concat(b.id) as next from category a left join category b on a.id=b.parent_id group by a.id</li>
</ol>
</div>
<p><img src="http://i3.6.cn/cvbnm/7b/28/dc/a64daa2eee854f8dc56b8fdcb85d93f8.jpg" alt="" width="550px" /></p>
<blockquote><p>查询每个分类的前N条记录</p></blockquote>
<p>早上朋友从CSDN上介绍我看的一个帖子~ 很巧妙的解决办法~ 本来我打算用子查询limit来做…可是MYSQL不支持子查询使用limit 再仔细看这位高人的解决办法~ 确实赞~</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #808080; font-style: italic;">-- -------------------------------</span>
   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #808080; font-style: italic;">--  Author: liangCK</span>
   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #808080; font-style: italic;">-- -------------------------------</span>
   mysql<span style="color: #CC0099;">&gt;</span>
   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #808080; font-style: italic;">-- &gt; 生成测试数据: @T</span>
   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">DROP</span> <span style="color: #990099; font-weight: bold;">TABLE</span> <span style="color: #009900;">IF</span> <span style="color: #990099; font-weight: bold;">EXISTS</span> tb <span style="color: #000033;">;</span>
   Query OK<span style="color: #000033;">,</span> <span style="color: #008080;">0</span> rows affected <span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">0.01</span> sec<span style="color: #FF00FF;">&#41;</span>
&nbsp;
   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">CREATE</span> <span style="color: #990099; font-weight: bold;">TABLE</span> tb<span style="color: #FF00FF;">&#40;</span>录象文件编号 <span style="color: #999900; font-weight: bold;">INT</span><span style="color: #000033;">,</span>录象文件级别 <span style="color: #999900; font-weight: bold;">INT</span><span style="color: #000033;">,</span>录象文件时间 <span style="color: #999900; font-weight: bold;">TIME</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span>
   Query OK<span style="color: #000033;">,</span> <span style="color: #008080;">0</span> rows affected <span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">0.05</span> sec<span style="color: #FF00FF;">&#41;</span>
&nbsp;
   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">INSERT</span> <span style="color: #990099; font-weight: bold;">INTO</span> tb
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">1</span><span style="color: #000033;">,</span><span style="color: #008080;">1</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:01'</span> <span style="color: #990099; font-weight: bold;">UNION</span> <span style="color: #990099; font-weight: bold;">ALL</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">2</span><span style="color: #000033;">,</span><span style="color: #008080;">1</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:02'</span> <span style="color: #990099; font-weight: bold;">UNION</span> <span style="color: #990099; font-weight: bold;">ALL</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">3</span><span style="color: #000033;">,</span><span style="color: #008080;">1</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:03'</span> <span style="color: #990099; font-weight: bold;">UNION</span> <span style="color: #990099; font-weight: bold;">ALL</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">4</span><span style="color: #000033;">,</span><span style="color: #008080;">2</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:01'</span> <span style="color: #990099; font-weight: bold;">UNION</span> <span style="color: #990099; font-weight: bold;">ALL</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">5</span><span style="color: #000033;">,</span><span style="color: #008080;">2</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:02'</span> <span style="color: #990099; font-weight: bold;">UNION</span> <span style="color: #990099; font-weight: bold;">ALL</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">6</span><span style="color: #000033;">,</span><span style="color: #008080;">2</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:03'</span> <span style="color: #990099; font-weight: bold;">UNION</span> <span style="color: #990099; font-weight: bold;">ALL</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">7</span><span style="color: #000033;">,</span><span style="color: #008080;">3</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:01'</span> <span style="color: #990099; font-weight: bold;">UNION</span> <span style="color: #990099; font-weight: bold;">ALL</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">8</span><span style="color: #000033;">,</span><span style="color: #008080;">3</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:02'</span> <span style="color: #990099; font-weight: bold;">UNION</span> <span style="color: #990099; font-weight: bold;">ALL</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #008080;">9</span><span style="color: #000033;">,</span><span style="color: #008080;">3</span><span style="color: #000033;">,</span><span style="color: #008000;">'12:00:03'</span><span style="color: #000033;">;</span>
   Query OK<span style="color: #000033;">,</span> <span style="color: #008080;">9</span> rows affected <span style="color: #FF00FF;">&#40;</span><span style="color: #008080;">0.09</span> sec<span style="color: #FF00FF;">&#41;</span>
   Records: <span style="color: #008080;">9</span>  Duplicates: <span style="color: #008080;">0</span>  <span style="color: #990099; font-weight: bold;">Warnings</span>: <span style="color: #008080;">0</span>
&nbsp;
   mysql<span style="color: #CC0099;">&gt;</span>
   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #808080; font-style: italic;">-- SQL查询如下:</span>
   mysql<span style="color: #CC0099;">&gt;</span>
   mysql<span style="color: #CC0099;">&gt;</span> <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span>
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">FROM</span> tb <span style="color: #990099; font-weight: bold;">AS</span> A
       <span style="color: #CC0099;">-&gt;</span> <span style="color: #990099; font-weight: bold;">WHERE</span> <span style="color: #008080;">2</span><span style="color: #CC0099;">&gt;</span><span style="color: #FF00FF;">&#40;</span><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #000099;">COUNT</span><span style="color: #FF00FF;">&#40;</span><span style="color: #CC0099;">*</span><span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">FROM</span> tb
       <span style="color: #CC0099;">-&gt;</span>          <span style="color: #990099; font-weight: bold;">WHERE</span> A.录象文件级别<span style="color: #CC0099;">=</span>录象文件级别
       <span style="color: #CC0099;">-&gt;</span><span style="color: #000033;">;</span>              <span style="color: #CC0099; font-weight: bold;">AND</span> 录象文件时间</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.fhand.com/blog/archives/42.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

