木匠的微型博客 Charlie Twitter

    follow me on Twitter

    Tuesday, November 20, 2012

    将数据处理逻辑SQL放在数据库后端的存储过程到底好不好? data logic SQL in Database vs in Web Application server


    将数据处理逻辑放在数据库后端的存储过程到底好不好? @诸超_小石头爸爸 是反对的, @OracleAskTom 是坚决推广的.这一点,我和Tom站在一边. 希望有一天和ChaoPing兄弟来个辩论会,互相学习到有益的经验. 两个人辩论肯定比一个人讲更有意思,更能吸引到听众的注意力.

    把问题具体细化一下. (data logic)SQL放在哪里?
    追加一个细化条件: 99% 纯SQL, 基本没有CPU运算 的 数据处理逻辑.

    关于如何区分 UI, business logic 和 data logic :
    http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:5662105500346364576

    先谈谈我的亲身体会.

    案例 1,

    当今社会,网络成为瓶颈的机会很大. 我们有个登录事务,4个简单SQL,查序列号,删除旧曲奇,插入新Cookie,COMMIT.一共四次网络传输,如果改成存储过程,只需要一次网络传输,网络立刻畅通. @yong321 @诸超_小石头爸爸 你们怎么看?

    案例 2,

    十年前, Java developer写了一个客户订单查询系统, 没有做分页处理, 随着时间的推移,用户数据量越来越大,查询响应时间越来越长,极大的浪费了数据库资源. 可是开发人员不对数据库负责,总是提不上他们的议事日程.
    这是一个简单而至关紧要的关于控制权和责任的问题, Control and Responsibility.
    Facebook说了, Control and Responsibility是他们成功的最重要因素.

    参考文章: Scaling Facebook to 500 Million Users and Beyond

    http://www.facebook.com/note.php?note_id=409881258919

    案例 3,

    在我们的好多关键业务模块,同一条一模一样的SQL被执行了好多次,连绑定变量值都是一样的.
    Java developer非常依赖ORM, 而且懒得写SQL,或者草草了事,不在乎或者不知道SQL的执行效率.
    同上一个案例一样,除非该模块导致数据库停机,他们懒得修改,也不负责任.

    相对来说, Java developer写出的SQL要比数据库专业开发人员写出的SQL效率低二到十倍.
    (因为鄙人经常能够经过重新设计一些功能模块,提高数据库处理效率五到数十倍)
    所以,很多情况下,你根本就不需要水平拆分split, 一个新的优化的设计,就帮助你解决扩展性问题.
    还节省了购买新软硬件的成本,降低了因为拆分导致的系统复杂性.

    补充一点, 就算是拆分了以后, 你依然可以调用后台存储过程, 中间件应用服务器只需要做一个分发调度器就可以了. 某书店的工作流软件就是这么实施的,大概拆分出十多个数据库.

    案例 4,

    接着 案例1 的上下文, 其实前3个SQL可以简化成一个SQL INSERT,就解决问题了,
    取序列号可以省掉,替代主键索引可以省掉, DELETE可以省掉, 查询配合B+树索引 +INDEX_DESC hint, SELECT 取最新的一条记录就行了, 逻辑读恒定,不会随着数据的增长而增加. INSERT比UPDATE/DELETE引发更少的阻塞锁.
    Java developer一般不在乎或者不知道高效SQL,也不是非常了解数据库是如何工作的.
    而且他们控制了代码,又不对数据库的问题负责任, 这个, 很难...很难!  这个就是普遍的现实,我们不能活在虚幻当中.
    所以要着手解决现实问题. 由数据库专业人员来控制数据库存取的SQL代码.

    备注:

    @yong321 要求拿出Profiling数据,证明网络是瓶颈.
    这一点很好, Critical Thinking: Be critical to what you hear and read. "Critically Analyze What You Read and Hear" 要的就是积极主动的分析思考, 批判性学习. 而不是被动的接受信息.
    我们有完整的 Profiling 数据, 剔除敏感信息以后, 性能剖析分析矩阵会被补充进来.

    @诸超_小石头爸爸 建议用匿名PL/SQL块(Anonymous PL/SQL block), 也能减少网络传输, eBay就是这么做的.

    反方意见:

    @诸超_小石头爸爸: 关于业务逻辑作为存储过程数据库里面:如果database不需要licemse我不反对,如果database和app一样容易scale我不反对,如果我是oracle vendor我不反对。如果是传统企业或者很小业务我不反对,如果注定做不大或者就是尝试快速试错我不反对。如果没有7+24的可用性要求我不反对。如果 (11月4日 22:40)

    @推车老王: 把业务逻辑放在数据库中?不谈别的,从可扩展性来说是增加APP服务器方便,还是split数据库方便?根本就没有可比性啊!从系统运维角度来看,系统规模越大,业务层与数据层分离就越重要。

    @刘德伟goodxp:赚钱不等于正确。没听过技术债吗?欠了多少没人知道,我面试时就遇见过编个理由离开原公司的,因为已经搞不起了,老总还当功臣留他。存储过程效率高,但很难维护,如果逻辑复杂还是应该放在Daemon里,数量多的话可以考虑做一个业务规则引擎。


    @yong321:I agree with 推车老王 and 刘德伟. If logic is or will be complicated, it's better stored at app layer; easier to scale up and make it OO (if needed). Otherwise, put it whichever has free CPU capacity.


    各位老大说了: It depends.
    一定要根据自身条件,设计出能够解决自身问题的合适方案.

    这些反方意见对我们目前的情况来说,都不是问题. 我们目前最大的问题就是命名规范. 如何简洁明了的把相关功能特性组织在一个模块里面,使重用最大化.

    欢迎各位看官猛烈评论, 给出积极的建设性意见.

    -木匠, 2012年冬天

    Saturday, November 17, 2012

    职场软技能 Soft skill

    职场软技能-周六 维多利亚 IT Club 知识分享

    时间: Saturday (Nov 17) 2:30pm
    地点: 2121 Cedar Hill Cross Rd. EBC church second floor meeting room.

    Soft skill. by Neil Han.

    本次主题是: 职场软技能, 及如何与老板谈判加薪.


    Neil今天带给我们的[软技能]知识分享,那是相当的精彩和实用, 鄙人还要再揣摩揣摩,进而结合实践. 


    • take control 行动,并且多走一里路. (一个球友说: 我妈妈讲了,如果让别人控制你的情绪, 你就是失败者)
    • win win (太深奥. 如果不知道怎么做, 直截了当的问对方: 怎样才能让你受益和获利)
    • understand before to be understood. (listen, 继而融洽合作)

    以上三点来自 高效能人士的七个习惯

    (赶紧做笔记, 外加个人体会, 不然明天就会忘记一半).

    希望明年再来一次,弥补一下那些不能够来的人的缺憾.
    华人软技能好的都在中国发展了; 出来靠做技术吃饭的, 厚黑学功底太弱.

    谢谢Neil的精心准备和流畅的演讲.

    最近工作稍忙, 没有来得及在华枫网和BBS上门预告. 不然, 会有更多的人受益.


    - 木匠

    Thursday, September 20, 2012

    2012 Vancouver DBA job 温哥华数据库管理员工作机会

    一个待遇比较好的工作机会. 却是在赌博行业,被一个1997年离开中国甲骨文的维多利亚的老朋友深深的鄙视着.  ;)
    2006年的时候,这个职位给110k基本工资, 现在应该更高了. 全看你个人的薪水谈判能力. 

    如果需要学习提高如何谈判薪水的能力, 看这里: 

    http://blog.wenxuecity.com/myblog/40440/201108/7295.html  -- 职场人心:谈判薪水的艺术

    职位描述如下:

    Client Location: Vancouver
    Duration: Permanent
    Contact:  博客留言, twitter留言, 或者给鄙人发邮件.

    Job Description:
    As a member of the development DBA team, you will be responsible for
    the Oracle database platform central to our software applications and
    Data Warehouse/BI platform. As a technical leader with a strong
    delivery focus, you will collaborate with all levels of the
    organization including software and quality assurance engineers to
    deliver software that is highly available and scalable.

    Responsibilities:
    -Collaborate with data and application architects to determine the
    appropriate logical and physical architecture, including table
    layouts, indexes, data, storage schemes, etc. for OLAP environments
    -Contribute to development of data warehouse from analyzing business
    requirements to development of design, ETL code development and
    testing using standard and in-house ETL tools
    -Technically assess current infrastructure, design and implementation
    of scalable platform to support growing demand of users and processes.
    -Facilitate database design and development through liaising with
    individuals across functional departments to gather knowledge and gain
    a strong understanding of all enterprise systems and business
    processes.
    -Understand business change requests and how to manage stakeholders expectations
    -Communicate objectives and approaches with a variety of audiences
    including: business stakeholders, executive management and technical
    teams.

    Additional Job Info:
    Qualifications
    -Expert knowledge of data warehousing on Oracle 11g/Unix platform (at
    least Oracle 10g) -Hands-on and proven leadership experience in
    designing and building enterprise portal, reports and analytics with
    professional report building software packages -Experience with
    JasperSoft BI Suite or other business intelligence software is
    required -Must have a high comfort level with report terminology and
    concepts such as drill-down, roll-up, aggregation, cross-tab etc.
    -Experience with in-house developed or off-the-shelf ETL tools -Expert
    knowledge and experience in writing complex SQL and PL/SQL code
    -Ability to write Technical specifications, presentations, training
    materials, user documentation, and technical documentation -Proven
    ability to demonstrate initiative, take responsibility for timely
    delivery and ensure customer satisfaction  Software is a world leader
    in online interactive technologies, bringing life to the e-gaming
    experience of thousands of users daily.  is an Agile software
    development shop using Agile Scrum methodologies with a number of
    cross functional teams focusing on the design, development, testing
    and implementation of our expansive software product suite (listed at
    www..ca). We are currently growing our team and have an opening for a
    Development DBA. Founded in 2004,  is comprised of the best and
    brightest professionals from a wide variety of disciplines, including
    software development, quality assurance, database administration and
    product management. The company culture is dynamic, contributing to an
    employee experience of fun and creativity!

    Top 3 Skills (stack ranked) :
    1. Dimensional Modeling 2. ETL 3. Oracle

    Work Environment (culture, deadline intensive, flexible hours, dress code) :
    Very deadline intensive, fast paced environment. Not your typical
    gaming environment - a little bit more on the conservative side, but
    still a very young, keen, motivated group, who work together in a
    collaborative AND team-driven fashion. Business casual dresscode,
    relatively flexible hours.

    Business Challenge Client is Tasked with Solving :
    Software manages 12 Product lines, with consistent upgrades on the go
    for at least 6 of them, at any given time. Their 3 largest products
    are: eCommerce, Management Tools, AND Casino.  runs some of the
    highest traffic websites in the world. Downtime or crashes in the
    system due to scalability issues or defects is not an option. A
    non-functioning gaming site could cause a massive loss in revenue and
    customer loyalty.

    Who is the Internal/External Customer? (i.e., end-user or end-client) :
    The external customers are the participants who play 's online games.
    The internal customers are those at  (developers, marketing, etc.) who
    use the information from the databases.

    Impact to the Internal/External Customer? (i.e., how does the
    end-users job become easier?) :
    By having a DBA, they can liase with other groups at  in order to use
    the data and information to benefit the organization in order to
    create a wider variety of quality gaming platforms and a stable,
    secure ecommerce system for end customers transactions.

    Project Stage/Lifecycle Info :

    Technical Environment :
    Oracle, Java/J2EE, Jaspersoft BI Suite, Apache, VMware, TestComplete)
    and a number of web and open source toolsets/technologies such as
    JMeter, Maven, Hudson Continuous Integration, Subversion, CentOS,
    JBoss, Spring, ActiveMQ , HTML5, etc.

    Non-technical Skills (i.e., communication, problem solving, etc.): :
    - Strong verbal and written skills, and an ability to present within a
    small team - Mature, professional demeanour and work habits -
    Resourceful, ‘can-do’ attitude, ability to identify potential problems
    early and make decisions - Excellent troubleshooting skills - Ability
    to work under minimal supervision - Strong team-oriented attitude -
    Must be flexible in nature, a proven problem solver, and possess a an
    ability to mentor - Strong desire to break software in a creative, but
    controlled manner

    EVP (why would someone take this position?) :
    At  you will be working with a great blend of best-in-class enterprise
    technology (e.g. Oracle, Java/J2EE, Jaspersoft BI Suite, Apache,
    VMware, TestComplete) and a number of web and open source
    toolsets/technologies such as JMeter, Maven, Hudson Continuous
    Integration, Subversion, CentOS, JBoss, Spring, ActiveMQ , HTML5, etc.
    Long term, permanent employment, with lots of opportunity for
    advancement AND career progression. Great location, with exceptional
    benefits, vacation and the promotion of work/life balance. Our
    innovative approach to technology, our outstanding perks and benefits
    and our amazingly talented employee base make  Software one of the
    best companies to work for in Vancouver.


    Thanks,

    Charlie 木匠
    =======
    Database Architect, 汉唐 田园牧歌DBA
    https://twitter.com/mujiang

    Tuesday, September 18, 2012

    九一八 国耻日 回顾历史 展望未来 2012_9_18

    今年的打击日货闹得很凶, 发生了一些失去理智的打砸抢, 深表遗憾, 鄙人就不参与.
    打击日货,贵在坚持. 海外华人可以做出更多的贡献,对中国的经济损失更小.

    https://twitter.com/mujiang/status/247065836853014528

    鄙人只希望您在选择日货的时候,稍微思考一下,回忆一下历史.

    忘记历史的人,没有未来.

    一位加拿大本地白人同事试图帮助我磨灭弱化那悲惨的记忆,说我已经是加拿大人了,何必呢? 
    可我生在中国,流着中国人的血. 这些烙印是我们一辈子没法改变的,只能记住历史,奋发图强,从我做起,自强不息,避免悲剧重演,写出新的文明辉煌的历史.


    1970年12月7日,大雪过后东欧最寒冷的一天. 当时的联邦德国总理维利·勃兰特冒着凛冽的寒风来到华沙犹太人死难者纪念碑下。他向犹太人死难烈士纪念碑敬献花圈后,当他伫立凝视一幅幅受难者浮雕时突然双膝跪在死难烈士纪念碑前湿漉漉的大理石板上, 长跪不起,并发出祈祷:“上帝饶恕我们吧,愿苦难的灵魂得到安宁。”勃兰特以此举向二战中无辜被纳粹党杀害的犹太人表示沉痛哀悼,并虔诚地为纳粹时代的德国认罪、赎罪。

    日本呢? 日本人呢? 他们是不会认罪的. 他们反而颠倒黑白,不承认侵华战争,企图篡改历史.
    对付日本,唯有强大,经济上强大. 然后像美国人一样,靠强大的武力打垮日本,它才会屈服认错.




    好了,希望你抽空,了解一下日本侵华战争. 下次选择日货的时候,不会显得那样麻木.

    *******

    國殤(1937-1945)

    不知國殤是何時出版的.國民党由蔣緯國監制的"–寸河山一寸血"可以此片對照看此紀錄片雖係大陸製作,
    內容尚屬公允 ( 數百名抗日犧牲將領名單中,所有均屬國軍,中共僅有左權一人而已。)

    歷史紀錄片:國殤(1937-1945)歷史是一面鏡子 它能照見過去 也能警惕未來..............
    國殤正是中華民族的一面鏡子會看到中華民族近百年來的苦難!

    This is what every Chinese must see.

    珍貴歷史紀錄片《國殤》

    第一集 - 第四十集(1937年-1945年)

    《國殤》 第一集 重返盧溝橋 http://www.youtube.com/watch?v=dj7lWDz-sY8
    《國殤》 第二集 人為刀俎 http://www.youtube.com/watch?v=5we3Of8I49c
    《國殤》 第三集 四十年長跑 http://www.youtube.com/watch?v=XMjkvzxUMl8
    《國殤》 第四集 槍桿子與政權 http://www.youtube.com/watch?v=wbqvxRSloJo
    《國殤》 第五集 安內?攘外? http://www.youtube.com/watch?v=w73sTeoOHHE
    《國殤》 第六集 焚風滿樓 http://www.youtube.com/watch?v=h4q3bng_8BE
    《國殤》 第七集 乾坤一變 http://www.youtube.com/watch?v=rJHlrtfcQlc
    《國殤》 第八集 最後關頭 http://www.youtube.com/watch?v=04CZUHiu36g
    《國殤》 第九集 淞滬會戰(上) http://www.youtube.com/watch?v=09152P3lzDs
    《國殤》 第十集 淞滬會戰(下) http://www.youtube.com/watch?v=rEHbXbXf5KE
    《國殤》 第十一集 南京保衛戰 http://www.youtube.com/watch?v=uhTSZQGkSZU
    《國殤》 第十二集 南京大屠城 http://www.youtube.com/watch?v=MwSsARS-osc
    《國殤》 第十三集 喋血長空 http://www.youtube.com/watch?v=2Wc0b2-LDBU
    《國殤》 第十四集 破釜沉舟 http://www.youtube.com/watch?v=sTWjy99UbW4
    《國殤》 第十五集 徐州會戰(上) http://www.youtube.com/watch?v=-Tu3qkAjaIM
    《國殤》 第十六集 徐州會戰(下) http://www.youtube.com/watch?v=tU6k4x0Bu9s
    《國殤》 第十七集 大遷徙 http://www.youtube.com/watch?v=W3qWKYoHVlE
    《國殤》 第十八集 武漢會戰 http://www.youtube.com/watch?v=04xQ7qlUCvo
    《國殤》 第十九集 另一個戰場 http://www.youtube.com/watch?v=yfTpEyWeeqM
    《國殤》 第二十集 烽火桃李劫 http://www.youtube.com/watch?v=cJvp1EsjXRs
    《國殤》 第二十一集 中期抗戰 http://www.youtube.com/watch?v=qTbbj_8k9Go
    《國殤》 第二十二集 烽煙再起 http://www.youtube.com/watch?v=XEaXF-mWObY
    《國殤》 第二十三集 長沙會戰 http://www.youtube.com/watch?v=1Nsd93J3lb8
    《國殤》 第二十四集 禍從天降 http://www.youtube.com/watch?v=geC-emXQKi0
    《國殤》 第二十五集 在北风中出击 http://www.youtube.com/watch?v=LKzxwGUtvEM
    《國殤》 第二十六集 突破封鎖線 http://www.youtube.com/watch?v=tkvM7PSm-Qs
    《國殤》 第二十七集 火并大江中游 http://www.youtube.com/watch?v=c3FTSLCmTMM
    《國殤》 第二十八集 赤手空拳 http://www.youtube.com/watch?v=zzxc7W84vFs
    《國殤》 第二十九集 疾风迅雷游击战 http://www.youtube.com/watch?v=-PFI0SGyGC8
    《國殤》 第三十集 血染的历史 http://www.youtube.com/watch?v=xU1mdcko2N0
    《國殤》 第三十一集 死亡工厂731 http://www.youtube.com/watch?v=TLhfAvjEUz4
    《國殤》 第三十二集 苦撑待变 http://www.youtube.com/watch?v=5D2D3Gl47A4
    《國殤》 第三十三集 悲情与豪情 http://www.youtube.com/watch?v=MjLGgo-jRx4
    《國殤》 第三十四集 一狼、二虎、四强 http://www.youtube.com/watch?v=m-faCfKIU7s
    《國殤》 第三十五集 蒋夫人与抗战 http://www.youtube.com/watch?v=d0L6fexCXeY
    《國殤》 第三十六集 长夜漫漫 http://www.youtube.com/watch?v=JE4hm2A367I
    《國殤》 第三十七集 鬼哭神号守衡阳 http://www.youtube.com/watch?v=ZVCdhYzszoM
    《國殤》 第三十八集 山穷水尽 http://www.youtube.com/watch?v=OwxfYbreiTs
    《國殤》 第三十九集 最后的坚持 http://www.youtube.com/watch?v=pa5pY-2KgrI
    《國殤》 第四十集 天亮前后 http://www.youtube.com/watch?v=xPvPxtUrDmA

    Wednesday, August 22, 2012

    Strata BBQ party 小区夏日会餐 - 老爸日记

    上周六我们小区80户人家在树林边进行烧烤聚会. 老爸老妈跟着我们一起参加了, 然后给中国老家的妹子写信介绍, 如下:

    这月19日,星期天 ,下午4点钟,每年一次的小区聚会开始了。提前给各家送了通知,到会60来人。住户多是退休人员,所以老人较多。木匠媳妇说,新近住进一户华人留学青年,往年木匠家是最年轻的。
      地点就在小区的草坪上,离你哥家30来米远,抬脚就到。有热心人提前做了准备,场地放有烧烤机、桌、椅、餐具、开水和饮料、面巾纸、垃圾桶……
      4点前后,人们陆续到来,老年夫妇居多。女的端着自家做的小吃,男的拿着折合座椅,半圆形地排座一起。两张长条桌,分别搁置甜点(洋人爱吃甜点吧,我看甜点很多)与它味小吃;主食是三种烧烤的汉堡包,大小一样,只是内夹肉(牛肉,火鸡)和菜的有别。我们国人会餐是围坐一桌,上几个菜;他们是每人拿一个盘子、叉子(或勺子),依次随意自取所需,后围坐一起,边吃边谈,自如交流,倍增情谊。也有的人拿桌自家做的小吃,热情地敬请与会者品尝。
        我们到场适中,坐在半圆形的一端。先后有四家来和我们交谈。首先来的是我们家 来自芬兰的一个邻居(另两家邻居旅游和外出,未参与)。她单居,已退休,子女忙时,常去照看。她多与木匠用英语交谈。我说了芬兰在斯堪地那维亚半岛上,那里有芬兰、瑞典、挪威三个国家,南边是波罗的海。芬兰的首都是赫尔辛基。木匠译给她,她说她就生长在赫尔辛基。
        其次来的是一个华人移民,木匠说她在省教育局上班,五十来岁,个小精干,多语情挚。你妈刚来时就认识她。我问她来自中国那一省,答曰广东。她端着自家作的油炸海鲜让我们品尝,紧跟的一个洋人热情伸出右手,嘴里说出“你好“,我恍然悟道这是她的丈夫。她介绍,不懂外语交流是困难,当年他母亲来探亲时,很多情况是指着实物跟她丈夫交流。
        接着来的也是一位华人女移民和她的洋丈夫,女的端着小吃,丈夫紧随,一来他就说“你好”。木匠和他用英语交谈。他说他刚从香港回来……
        木匠媳妇这期间忙着去跟别人交谈,以上三者他没参与。
        最后来的是一对老年洋人夫妇,离我们不远,就在我们家斜对面。男的头戴礼帽,一身新衣,个头不高,彬彬有礼,热情有加。我给他拉来一个座椅,他说"Thank you",趁势入座。女的身勢较高,一头修剪过的短白发,和悦多情。我和你妈不会英语,木匠媳妇跟他们交谈。他们说曾经去过中国旅游,家里还有在中国旅游时买的中国商品,邀我们前去欣赏。我们一起走去,进他家门时,说不用脱鞋(洋人习惯是进大门时一定脱鞋,不穿拖鞋。也不备拖鞋,客人或穿袜、或光脚走路)。我们看到,家里的小方桌上,摆放着四个兵马俑像,一辆四马驾的战车,一架由小到大逐次悬挂的古代乐器编钟,未了,女的又拿出了四个小玻璃镜框,里面镶嵌着中文印字,分别是“心爱“、”健康“、”幸福家庭“、……
        聚会持续了三个钟头,各家才依依惜别。

    - 木匠的爹


     老爸老妈,


     老妈,
     

    Thursday, August 02, 2012

    另一个DBA在加拿大的找工作经验 Canada Toronto job hunting


    在下从社交网圈子里认识了原来甲骨文北京研发中心的一个小伙. 我离开甲骨文的时候,他还没有进去.
    我给他介绍过两个美国和加拿大工作. 可是,都是正在面试的过程中,他就拿到了更好的工作的Offer, 真是福将, 不服不行.

    下面是正文:

    我来分享一下多伦多找DBA工作的经历吧,全新出炉。

    2年前找工作被幸运石头砸的有点晕过了头,也就没有可参考的价值。
    这次找工作没那么好的运气,在IBM结交了一堆DB2同事,推荐的工作也不适合自己,自己来吧。

    大概4月份开始投简历,DBA和其他开发或者测试职位不同,整个大多地区也没多少,每周大概能看到几个职位,过滤之后,适合自己的不多。因为多伦多的小公司喜欢的组合是Oracle+SQL Server,有时候是DB2+SQL Server,本人没有SQL Server经验,大部分职位就排除了。市场上很难看到Oracle+DB2的职位。尽管这样,4,5月份也投了不少职位,但都石沉大海。面试只有一个,那个leader印象不错,口头答应给我offer,但后来不知道为何说不行了。
    把简历放在monster和workpolis上,会有公司和猎头主动来找,但基本都是偏远小城市的DBA机会,我虽然喜欢小城市,但受不了那冰天雪地的冬天。

    总之,4,5月份找DBA工作好难。

    到了6月份,突然发现前两个月投的简历开始回音了,有的简历投的久了自己都忘记了。顶峰一天,连续2个电话面试+1个现场面试,这一个现场面试机会我抓住了,找工结束。

    拿到offer后,盼望已久的,木匠和他的球友推荐的维多利亚DBA工作给了电话面试机会,维多利亚是我最喜欢的加拿大城市,虽然至今仍然没放弃全家搬迁维多利亚的想法,但考虑之后,放弃了这个面试机会,当时理由有ABCD,其实归根结底,是自己找了2个月工作,感觉又累又烦躁。

    个人感觉,在多伦多找DBA工作,关键是第一轮电话面试,当然现在很多公司直接就是现场面试。因为语言问题,应付HR的那些讨厌的soft skills还真挺累的,不能像中文那样胡说八道。真正face to face的时候,就是纯技术了,一切感觉就都顺了。


    - 瓅 ‏@lewvip

    Wednesday, July 25, 2012

    father canada impression 老爸住加拿大随想

    老爸老妈原计划来加拿大住一年. 一开始我就认为这个计划不现实. 果然,老爸住了半年以后,就有些孤寂烦闷,住不下去了,随即买了飞机票,回商州老家.


    我们住的地方属于郊区,挨着湖边,散步锻炼都方便,就是太冷清了. 老爸老妈不钓鱼,不打牌,较少出去参加华人聚会,平常的活动仅限于遛狗,看书,做饭. 邻里们虽然友善热情,终究语言不通,难以交流.
    我们两口子喜欢住在华人少的地方,清净,简单. 只能尽量多找机会带爸妈出去活动了.


    以下是老爸的家书,


        商县现已进入炎热的伏天。维多利亚这里天气凉爽如秋,早晚有时还得穿厚一点。前几天曾经连续四、五天比较热,有两天为甚,像我们那里的夏天一样,木匠儿子还去远处一个清澈的湖里游过一次泳。但倏忽而过,此以后再没那样的热天了。室温在20—22度之间徘徊,很少上到23度。也真怪了,我上次来时的夏天,比这热多了。可以说,今夏算是来避暑胜地受尽了。不仅如此,这里的环境优美幽静,人情诚实友善,经济发达现代,生活丰裕充沛,社会安全有序,……但梁园虽好,非我久留之地,依然得回山峦之乡,度幽悠休闲之光景。

    Wednesday, June 27, 2012

    Victoria 2012 summer DBA jobs 维多利亚数据库管理员工作机会

    台湾老弟 @Charles_C_Huang 的消息就是灵通,收集了不少维多利亚的工作机会,在此与大伙同仁分享.

    And Pythian is looking for remote DBA again in pacific time zone. All of sudden there's shortage in town again like 4-5 years ago.

    http://to.ly/dZo4 BC Ministry of Finance;
    http://to.ly/dZo6 Ignite;
    http://to.ly/dZow Maximus

    http://to.ly/dZo0 BC_Assessment, 2 positions;
    http://to.ly/dZo8 Fujitsu;
    http://to.ly/dZo4 Ministry of Finance

    What is happening... Victoria is hiring DBAs everywhere.

    在维多利亚干数据库管理员的人们,近期不用怕失业了. 在公司里面也不用怕压力大,办公室政治折磨人,要敢于提出自己建议.
    此处不留爷,自有留爷处.

    由于上季度业绩不理想,我朋友公司的DBA职位暂时冻结, 下个季度还会再放出来的.

     
    附一张我老爸的伟大形象. 更有特别留意维多利亚美丽的海滨风光.

    Wednesday, June 20, 2012

    Cassandra CQL Batch and single quote 批处理修改之疑惑

    Cassandra 使用经验点滴.

    Cassandra CQL Batch可以极大的提高数据修改的效率. 我们这里的情况是提高了五倍.

    但是CQL Batch不支持绑定变量,存在安全隐患,而且不方便处理字符串(值)里面的单双引号.
    解决方法是单引号前面再加一个单号,把单引号特别标示出来就行了. 这样, CQL就可以被正确的解释执行了.

    CQL>


    BEGIN BATCH


    INSERT INTO demo.product(id, price, description) VALUES (123, 5.98, 'AA''BB')
    INSERT INTO demo.product(id, price, description) VALUES (124, 9.78, 'BB''CC')
    DELETE FROM demo.product where id = 138
    ...
    INSERT INTO demo.product(id, price, description) VALUES (567, 2.34, 'E''''F')


    APPLY BATCH;

    Python语句示例, 替换单引号:
    line=line.replace("'","''")

    在下刚刚给DataStax公司提出了功能改进需求.
    http://www.datastax.com/support-forums/topic/when-will-cql-batch-support-binding-variable-query-substitution-use-named-parameters


    参考:
    BATCH语法,
    http://www.datastax.com/docs/1.1/references/cql/BATCH

    在字符串里面使用单引号,
    http://www.datastax.com/docs/1.1/references/cql/cql_lexicon

    我们使用Cassandra 1.1, CQL3.0, 200GB数据,记录约为一千字节.
    单行CQL INSERT, 每秒插入一千行数据
    改为BATCH操作后,每秒插入五千行数据, 每个BATCH里面包含一千个INSERT.

    Monday, March 19, 2012

    Cassandra in Twitter.com C*摆脱颓势,一路高歌猛进

    此帖来源于Facebook的一篇技术介绍. 童兄高喊一句口号作为留言: HBase Rocks,Cassandra Sucks.

    鄙人觉得有点误导. 随写出以下文字,提供更多及时信息,供各位参考.
    HBase和Cassandra都是传承BigTable的Column Family数据模式; 本是同根生,相煎何太急.

    Polyglot persistence(NoSQL),顾名思义,就是因为通吃的关系数据库在解决某些特定场景问题的时候,露怯,暴露了局限性,才诞生了各种NoSQL产品, 能够处理种种特殊场景的简单问题,见缝插针,弥补了关系数据库的不足之处, 友好共生, 在未来的数十年里.

    因此, Polyglot persistence(NoSQL)不会一家独大,一统天下. 每个产品都是天生处理某个特定问题的. 现实世界的问题种类很多.
    Polyglot persistence各个数据库之间的差异非常大,大类就有四类. 作为数据库架构师和软件架构师,一个重要的责任就是在项目开始之前,做出正确的选择, 选择出能够解决特定使用场景的数据库产品. http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

    HBase是好,与Hadoop结合紧密,解决了Name Node的单点失效问题,范围分区会自动分裂.
    Facebook选择HBase的另一个重要原因是他们已经拥有了HBase的技能和知识库,减少了学习时间.
    HBase的稳定性和易用性还是略逊于Cassandra. 

    Cassandra 1.1 支持的数据模型特性有:

    Column slicing,
    Composite Key/Index,
    Counter column,
    2nd index,
    Reversed Comparator,
    TTL Expiring column,
    Compression SSTable,
    LevelDB SSTable compaction
    ...


    先不说 以Netflix,Rackspace,Reddit,Cisco,Digg 为龙头的广泛的Cassandra用户群. 我们就单单看一下Twitter公司的后台数据库.

    Scala Client for Cassandra From Twitter: Cassie. a dozen clusters and over a thousand Cassandra machines. 对,是上千台Cassandra节点.
    http://nosql.mypopescu.com/post/18975506356/scala-client-for-cassandra-from-twitter-cassie

    Rainbird: Twitter’s ZooKeeper + Cassandra Based Realtime Analytics Solution http://nosql.mypopescu.com/post/3134031732/rainbird-twitters-zookeeper-cassandra-based

    SpiderDuck: Twitter's Real-time URL Fetcher, 渗透进了核心实时应用. NOVEMBER 14, 2011. 
    http://engineering.twitter.com/2011/11/spiderduck-twitters-real-time-url.html

    Cassandra-based distributed hash table that stores page metadata and resolution information keyed by URL, as well as fetch status for every URL recently encountered by the system. This store serves clients across Twitter that need real-time access to URL metadata.

    看看我们漫长的对话时间表.  :)





  • January 27
    Charlie Zhu
    • Why HBase Rocks,Cassandra Sucks ?

  • March 15
    James Tong
    • facebook use hbase,and twitter turning down cassandra,

  • 4 minutes ago
    Charlie Zhu
  • 最后,以High Scalability的Facebook项目分析的博客总结,作为结尾. MARCH 22, 2011.
    这篇文章也过时. NoSQL时代,新产品和功能特性发布的太快, 信息披星戴月,淘汰的太快. 

    "Facebook is focussing on the HBase, Hadoop, HDFS ecosystem and counting on the operational quirks to be ironed out later. Others choose Cassandra because they love it's scalability, multi-datacenter functionality, and ease of operational use" 加上Realtime Analytics. " 

    附录, 
    1) 在下是作为跑龙套的,一起翻译TOP(Troubleshooting Oracle Performance)的时候, 结识了James Tong兄. 鄙人翻译的是第四章的草稿, Object Statistics. 
    2) 鄙人现在主攻Cassandra和Redis, 欢迎提问和交流. 

    木匠 - 公元2012年 三月十九日.

    Tuesday, February 14, 2012

    [IT Club] Feb 2012 topic - NoSQL 云端分布式数据库介绍

    这是鄙人的第二场. 主要介绍一下当今江湖上流行的分布式数据库理论模型和数据模型, 包括Dynamo,BigTable.
    涉及的数据库有Cassandra/HBase, MongoDB, Redis.  NewSQL - Vertica.

    时间: 2:30pm Feb 18, 2012. Saturday
    地点: 2121 Cedar Hill Cross Rd.   EBC church second floor meeting room.



    活跃的博客:

    http://nosql.mypopescu.com

    参考:

    http://nosql-database.org/

    http://en.wikipedia.org/wiki/NoSQL


    欢迎捧场,

    - 木匠
    https://twitter.com/#!/mujiang

    Tuesday, January 17, 2012

    更多Oracle DBA职位 Vancouver Burnaby


    地点在温哥华Burnaby, 位置不错,毗邻SFU. 公司文化也不错,平衡生活,看中成绩和结果. 年收入100k+.
    以前的老同事兼老朋友的部门在找人,他是部门的头儿.

    http://www.vivonet.com/about-us/careers/sr-database-administrator

    有兴趣的,请跟我联系. 加拿大和美国找工作,主要也是靠人际网络和朋友推荐.

    因为工作和办公室周围环境好,可以随时去SFU大学散步,我都有点心动了.
    看来Oracle DBA的工作稳定性和安全性还是相当高的, 本地机会不断.  ^_^

    Friday, January 06, 2012

    Glasses from ClearlyContacts 新年网络商店配眼镜


    新年好!

    给各位朋友推荐一个网上眼镜店:  Website:    www.clearlycontacts.ca
    到货以后, 可以去一家眼镜店精细调整一下, 比如去CostCo.


    Your glasses will arrive with a standard alignment. Since each face shape is different, a frame in standard alignment may need a little bit of adjustment.
    Check out this video to see how to make simple adjustments to your glasses in order to fit you perfectly.

    许多朋友推荐过. 我刚刚配了一副, 还不错. 价钱大概是普通眼镜店的30%.

    第一副眼镜免费: Coupon code: FIRSTPAIRFREE

    有问题,请留言.


    p.s.

    顺便讲一个小故事. 加拿大人做生意一般都特别古板,一根死脑筋. 不过,我喜欢这样,这是一个法治社会所必需的, 促使中国社会更趋向于遵纪守法.

    我们每年可以报销$250的配眼镜费用, 和一次免费眼光.
    我就耍了个小聪明. 到一家眼镜店,看中一个$500元的眼镜镜框+镜片,问售货员可不可以把发票拆分成两张$250元的, 一张2011年,一张2012年. 答案是: "Absolutely not".

    这样,我就只好去试试网络眼镜商店, 花了$260配了一副更好的眼镜.