【成长手记】79·成长的痛苦,安逸的快乐

晚上十一点十分,出差在昆明,刚刚完成晚上的几项工作任务,再开始下一项之前,我忍不住要写篇博客,简要地记录最近思考的几件事情。 1、创业的变化与每个人的“自我感觉” 如果让我回顾这几年的自我变化,我想其中一项较为突出的是“减少抱怨和苛责”。这些情绪通常是内心的期望与实际的距离太大导致内心愤怒,进而“喜形于色”。 之前,我的立场是员工、同事和部门领导,我看待问题通常偏于“完美主义”,对上抱怨认为其不胜岗位,对下苛责批评不思进取。长此以往,领导就过多地看到了我抱怨的一面,而对我孜孜不倦的努力改变视而不见——也许相对于成长,抱怨总是太过于明显。 如今,当我没有了“中间商”失去了缓冲地带,直接面对客户、直接面对所有的困难,我就不得不思考如何减少我给客户造成的负面的“心理面积”,哪怕是一点点。我甚至自己都觉得情商有了本质的提升,再也不是之前那位被女同事说几句玩笑就耳根发红的大学生形象。 也真因为此,除了少数我没有忍住最后分手扬镳的客户,我的客户对我都甚为信赖,均以朋友待之。每每与客户在席间觥筹接错,甚至说为我介绍女朋友之类的玩笑,我都欣然以对,甚至还可以以佛学、心理学等诸多的零散知识博得客户的一时开心。 不过,当我最近开始招聘一个分析师岗位,我就又回到了之前的某种场景。说实话,我再也找不到和我一样的人——历经困难而后知对待困难的方式,全然以知识打造一副铠甲然后勇往无前的勇气,以永不低头的勇气追求每一件事情的完美。 最近在客户这里,应客户要求为其准备集团考试的题目,我就被我招来帮忙的90后一番“蹂躏”,但是又必须装作毫不介意的样子,偶尔提醒加努力的引导,还有凡事亲力亲为的方式尽快推进整个项目的完成。我已经不止一次的被现实教训:在每一件需要上心的事情面前,除了自己,再也没有可以靠得住的人存在。 我几乎推翻了他之前一周的所有核心工作,从数据源到数据可视化题目,无一不是我在匆忙之中亲力亲为,然后请他辅助完成一些事务性的工作。比如,我在Tableau中列举了简单的题目,他就稍作修改变成了正式的题目: “机台部位为1(小包生产),哪一天的剔除率最高?(剔除率=部位剔除量/(部位剔除量+实际产量))” 可是,这怎么会是我想要的结果呢,我必须确认每一位考生能清晰地看懂题目本身,还要解决可能的字段误解,并在关键的地方给出必要的引导。我需要展示Tableau的易用性和深奥,但也不能让题目吓退了我的潜在用户。 修改后:查看包装机小包部位,在各天的产量与剔除量变化趋势。在此基础上计算每天的剔除率。问:哪一天的剔除率最高?日期格式为XXXX年X月X日。(注意,剔除率 = 部位剔除量/(部位剔除量+产量),产量使用realproduction字段;包装机部位编码(2=小包部位 1=条包部位)) 正是特别害怕这样的苦恼,所以我宁可自己多做一些,宁可少做几家客户,从而减少心灵上的折磨和精神上的痛苦。 很多人喜欢做领导,不是因为羡慕领导的责权,而是讨厌做员工的琐碎;但正是这样的心态,让“指手画脚、只说不练”的员工停留在原来的位置上。 做员工,应该少一些主义,多一些实干;而做领导恰恰相反,要多一些主义,多一些思想的斗争,相比亲力亲为,这些地方消耗更多的精力。 2、长期痛苦与短期痛苦的区别与心理界限 还有一个思考,更加让我铭记,不止一个人、一件事情总是让我在近期思考这个问题,那就是“为什么总有很多人喜欢追求短期的利益?” 大家都知道鸡和蛋的哲学问题,但在生活和工作中却鲜有智者,我自己就深陷其中,只能说已经看到浅滩。 我这几年认识了很多人,都希望找到一颗摇钱树,然后趁着摇钱树还能摇钱的时候努力晃荡,哪管是否眩晕。要知道,摇钱树必有神灵护佑,也必然是聪明之人,没有哪个企业的领导是依靠笨拙甚至木讷成长起来的。和这样的人打交道,倘若还想用尽一些小聪明,虽然不是“飞蛾扑火”,最后恐怕也是“竹篮打水一场空”。 相比之下,少数有能承受长期的痛苦,并最终领悟到“生活就是痛苦”的哲理,从而不在“逃避痛苦”的这个维度上寻求解脱的答案。 记得在《少有人走的路》第5册有句话,“痛苦是成长的过程”,《原则》一书也把人生的过程总结为“痛苦+反思=成长”。哲人果然都是慧眼卓识,能从几十年的匆匆岁月中总结出珍珠一样的经验,可惜很多人只当茶饮,不当药用。 “书犹药也,善读之可以医愚”——刘向 所有的成功,都是长期主义的胜利,我希望自己是一个长期主义者。 3、有没有宿命? 成长如此痛苦(当然,活着也是痛苦,虽然相比成长依然是安逸),大部分人都陷入年轻时的自己一直到老难有大的改变,可谓是“望穿一生”啊。 随着最近工作日渐顺利,我反而时不时心生恐慌。疫情期间每日为了写书匆匆忙忙,哪里有时间思考什么人生哲理或者做什么之类。如今,当晚上不知所措,反而有一种莫名的空虚感。我不知道这是不是就是宿命的味道。 如果是宿命,我希望眼下是下一次暴风雨来临前的短暂平静; 如果不是宿命,我希望眼下只是一时的纠结。 不说了,忙去也。 20200922 Night11:10~11:45 Kunming20201008 Night11:35 Tangshan

使用Tableau Server PG数据库展示企业数据资产

随着越来越多企业开始把分析与资产结合,Data Management Add-on逐步展现了它的强大功能。在近期的客户服务中,本人视图通过页面构建数据资产,并以仪表板方式展现出来,从而嵌入到更多的平台中。 【补充】强烈推荐一个github地址,包含了一些常见的sql查询,厉害了。 isajediknight/Tableau-Server-Postgres-Queries ——github 1、启动pg访问 默认的PostgreSQL数据库是不开放访问的,需要通过tsm命令开放访问,并为readonly账户赋予访问密码 特别说明:如果密码中有特殊字符,需要用双引号引用,因此不建议使用特殊字符,比如<>等字符。 特别说明:Tableau server在安装时会创建两个内置账号,tableau和readonly,因此不建议管理员账号用相同的名称。另外readonly的账号所能访问的内容更多,因此推荐管理员使用。 更多访问表的说明,参考GitHub页面:https://tableau.github.io/tableau-data-dictionary/2020.2/data_dictionary.htm (版本可以在地址中更改) 2、直接在server中访问PostgreSQL 在Tableau server中新建工作簿,选择数据库——PostgreSQL,端口为8060,数据库为workgroup,用户名为readonly,即可创建连接。 (缺少一个图片) 之后,可以通过数据关系构建数据资产的模型,这里将database、table和column三个表构建在一起。Tableau服务器可以识别字段的唯一性并优化数据连接方式。 3、参考后台功能模块构建视图 Tableau server中可以轻松管理数据资产,不管是数据库文件,还是本地Excel文件。 通过为数据表或者字段添加认证,可以让分析师在使用是一目了然数据变化。 所有的认证动作,都可以在后台资产清单中展现,于是就可以自定义构建视图。 这就是我的初衷,接下来,我会使用这些资产数据构建视图,并在分析中有针对性的调整我的数据认证、标签和说明,从而让任何人一目了然。 喜乐君 @ 20200909

【tushare+python」自动更新股票信息的python代码

周日,终于忙完了本周的计划,突然想重新看一下我的python代码,上次有一个地方没有完成:实现从数据库中最后日期开始的增量更新。以至于每次写入都会有重复,不得不使用SQL的distinct语法去重。 1、python解决方案 刚才研究了一下,增加了两个函数: def get_max_min_date(ts_code,table) 这个函数用来提取某个代码在对应数据表中的最大日期、最小日期 def dateadd(string,int=1): 这个函数用来把上述函数找到的最大日期增加1天,并改为标准格式 这样我就可以从数据库中的最大值的次日开始更新了,更新到today即可。 2、增加了一个python循环 只要是我的自定义列表的股票,都可以自动追加日期。 如果是新股票怎么办,通过一个判断将开始日期设置为2000年1月1日 if max_date != None: start_date=function_stock.dateadd(max_date) else: start_date=’20010101′ end_date = date.today().strftime(‘%Y%m%d’) 3、tableau分析 这是我的目的 附件:程序正文 import tushare as ts from sqlalchemy import create_engine import pandas as pd import numpy as np import pymysql from datetime import date import datetime import function_stock import pymysql #Continue reading “【tushare+python」自动更新股票信息的python代码”

【重写第二章】2.2 解析:问题的解析与层次分析方法

【2020/10】图书重新修订已经完成。2020年10月印刷,第二章已经重新印刷。本文非最终版本,最终版本以图书印刷为准。 【2020/9/4】近期,重写《数据可视化分析:Tableau原理与实践》第二章 2.2  解析:问题的解析与层次分析方法 问题解析是分析的开始。在2.1小节的基础上进一步展开如下图2-6所示,它构成了本节的基础框架,连接了第五章的很多功能。这里依次展开深入分析维度、聚合与层次。 图2‑6  问题分析是一切的起点 基于图2-6的框架,笔者要努力诠释几个重点:何为层次(LOD),层次如何变化?又何为聚合,聚合从何而来?层次有几层,聚合分几种?它们与数据准备、计算有何关联? 2.2.1  问题解析:维度描述问题、度量回答答案 假设一个从简单的业务场景:新季度伊始,领导要求分析一下各类别、各地区的销售,客户数量并从客户数量角度探索一下市场风险。其中可能会分析以下的问题: 公司的销售额总和是多少?[1] 各类别的销售额总和是多少? 各地区的销售额总和是多少? 在技术类别中,各地区、各月的销售额总和分别是多少? 在技术类别中,各地区、各月的客户数量分别有多少? 一句话必然由多个字段构成。每一个问题都必然包含两类字段:“描述问题是什么”的描述字段和“回答答案有多少”的聚合字段,分别位于“的”的前后。上面用蓝色代表问题,绿色代表答案[2],着重号代表答案中包含的聚合方式,而橙色代表样本范围。 用来“描述问题是什么”的字段,通常称之为“分类字段”,而“回答答案有多少”的聚合字段,称之为“量化字段”(比如销售额总和、客户数量)。顾名思义,“分类字段”用于描述数据彼此各不相同的,比如“红塔山、玉溪、泰山”等;而“量化字段”即以“数量”描述多少,比如10,108.88等,数字揭示问题的精准答案。 在Tableau中,“分类字段”称为“维度”(Dimension),而“量化字段”主要来自于“度量”(Measure)的默认聚合,也可来自维度字段的聚合,比如“客户数量”“最大日期”。由于维度字段的聚合可以通过计算字段生成聚合,必要时还可以保存为“度量字段”,因此本书概括如图所示: 用一句话概括: “维度字段描述问题(是什么),度量聚合回答答案(有多少)” 很多问题还包含了“分析的样本范围”部分,如最后两个示例中的“在技术类别中”。分析样本范围,可以是基于维度字段的,也可以是基于度量字段的,通常都是“在……中”、“(时间或数字等连续范围)从……到……”、“(销售额)前……名的(客户)”、“(利润)大于……的(客户)”等表述方式。Tableau中对应筛选(Filter)、集(Set)等功能,并能通过参数(Parameter)、动作(Action)等交互方式控制样本范围。多种筛选器和数据查询动作构成了Tableau特别重要的一个主题——操作顺序(Order of Operations)。本书会在第五章、第七章及第二篇深入介绍。 按照问题的分解方法,上述多个问题可以用表2-1表示。简单的问题只有一个维度字段,复杂问题则会同时包含多个。本书中用“地区*月”表示一个问题的层次/详细级别。 图表 2-11 问题的分解 问题 样本范围 维度(层次) 聚合方式(度量) 公司的销售额总和是多少? 公司,即总体 无,即最高层次 SUM(销售额) 各类别的销售额总和是多少? 无,即总体 类别 SUM(销售额) 各地区的销售额总和是多少? 无,即总体 地区 SUM(销售额) 在技术类别中,各地区、各月的销售额总和分别是多少? 技术类别——维度筛选器 地区*月 SUM(销售额) 在技术类别中,各地区、各月的客户数量分别有多少? 技术类别——维度筛选器 地区*月 COUNTD(客户ID) 问题的复杂性与度量无关,都是由维度字段引起的,比如主视图中包含了另一个层次的度量。度量的聚合只是在问题对应的层次上的聚合而已。那“聚合”是如何发生的? 2.2.2  聚合解析:可视化是从行级别到视图级别的聚合过程 “维度字段描述问题是什么”,问题的层次,就是度量字段聚合的依据。 举例而言,楼下超市每天要给不同客户销售很多商品,每个客户的一次交易对应一个订单ID,一个订单ID包含一种或多种商品(类似于你的购物篮或者购物推车放上了各种产品去结算),这些字段和成交信息(如销售额、数量、利润等)一起保存在数据库中。摘要主要的字段如下: 图 2-7 超市交易对应的行级别/明细数据示例(部分字段、部分数据) 假如超市领导问:“2020年6月,各类别的销售额与订单数分别是多少?” 按照前文方法,可以快速分解问题:“2020年6月”是样本范围、“类别”是维度代表问题的层次、“销售额(总和)”和“订单数(不同计数)”是度量聚合用于回答答案。 假定只有3个类别,那就意味着答案中要有3个销售额和3个订单数数量,共计6个数字标记。它们从成千上万的交易中累加而成,把这个过程之为“聚合”。总结而言,聚合就是从数据库记录的明细级别(行级别),聚合到问题所在的层次级别(视图级别)的过程。由于Tableau用视图回答问题,因此问题对应的层次也称之为“视图层次”。如图2-X所示。Continue reading “【重写第二章】2.2 解析:问题的解析与层次分析方法”