从零开始Tableau | 9.计算字段

本文详细介绍了Tableau中计算字段的创建和主要功能函数的使用,包括运算符的优先级、逻辑测试以及如何利用数字、字符串、聚合和日期函数进行数据处理。通过实例展示了如何创建和应用计算字段,如根据利润划分客户类型,以及使用函数如ABS、Contains、COUNTD和DATEDIFF解决实际分析问题。

 

计算字段让tableau的分析具有很强的灵活性。本节记录要点:

  • 运算符
  • 创建计算字段
  • 主要函数

运算符

运算符是一个符号,可以对对数字、字符串、日期等进行数学或逻辑操作,要使用计算字段和函数,必须先了解tableau支持的运算符以及每个运算符的运算逻辑和运算顺序。

常规运算符

图:常规运算符
图:常规运算符

 

逻辑运算符

图:逻辑运算符
图:逻辑运算符

 

运算符优先级

tableau中的运算符在进行运算时,彼此间存在优先顺序,如下图所示,第一行具有最高优先级,最后一行的优先级最低。

同一行中的运算符具有相同优先级。在两个运算符具有相同优先级的情况下,则在公式中从左向右进行计算。

可以根据需要使用括号,括号中的运算符优先于括号外的运算符进行计算,从最内部的括号开始向外计算。

图:运算符优先级
图:运算符优先级

 

创建计算字段

计算字段是使用函数和运算符构造公式,对数据源字段(包括维度、度量、参数等)进行重新定义的字段。它是原始数据源中没有,由使用者创建出来的新字段。

这里使用”超市“数据的”客户排序表“,该表将所有客户销售额按照从高到低的顺序进行了可视化,现在需要将客户按照”利润“大小分为”高利润客户“和”低利润客户“两类,并在视图中用颜色进行区分,就要用到计算字段。

具体分为两步:第一步是创建”客户利润类型“计算字段;第二步是将创建的计算字段可视化。

图:客户销售额排序
搭建一个质检系统(Quality Control System),无论是用于软件测试、产品质量控制,还是数据质量监控,都需要从系统架构设计、关键技术选型、实施步骤等多个方面进行规划和落地。以下是一个完整的构建方案。 ### 一、系统架构设计 质检系统的架构通常可以分为以下几个核心模块: 1. **数据采集层**:负责从各类来源(如数据库、日志文件、API接口等)获取原始数据。 2. **规则引擎层**:用于定义和执行质量检测规则,如完整性、一致性、准确性等。 3. **质量检测层**:执行具体的质检逻辑,包括自动化检测、异常识别、评分等。 4. **结果展示层**:提供可视化界面,展示质检结果、趋势分析、异常预警等。 5. **告警与通知层**:当检测到异常时,通过邮件、短信、Webhook等方式通知相关人员。 6. **数据存储层**:存储原始数据、检测结果、规则配置、日志等信息。 ### 二、关键技术选型 - **数据采集工具**:Apache Kafka、Flume、Logstash - **规则引擎**:Drools、Easy Rules、自定义规则脚本(如Python) - **质量检测引擎**:Great Expectations、Talend Data Quality、自定义脚本 - **数据存储**:MySQL、PostgreSQL、Elasticsearch、Hadoop HDFS - **可视化工具**:Grafana、Kibana、Tableau、自研前端页面 - **通知系统**:Prometheus Alertmanager、自定义Webhook服务 ### 三、实施步骤 #### 1. 明确质检目标与指标 在开始构建之前,必须明确质检系统的应用场景和目标,例如: - 数据完整性:字段是否为空? - 数据一致性:不同系统间的数据是否一致? - 数据准确性:数值是否在合理范围内? - 数据唯一性:是否存在重复记录? #### 2. 构建数据采集管道 通过日志采集工具或API接口将原始数据导入系统。例如,使用Logstash采集日志数据: ```bash input { file { path => "/path/to/logs/*.log" start_position => "beginning" } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "logs-%{+YYYY.MM.dd}" } } ``` #### 3. 定义质量检测规则 根据业务需求定义检测规则。例如,使用Great Expectations进行数据质量检测: ```python import great_expectations as ge df = ge.read_csv("data.csv") df.expect_column_values_to_not_be_null("user_id") df.expect_column_values_to_be_unique("order_id") df.expect_column_values_to_be_in_set("status", ["pending", "shipped", "delivered"]) ``` #### 4. 实现检测逻辑与自动化 将规则嵌入到检测引擎中,支持定时任务或事件驱动的检测流程。例如,使用Airflow进行任务调度: ```python from airflow import DAG from airflow.operators.python_operator import PythonOperator from datetime import datetime def run_quality_check(): # 调用质检逻辑 pass dag = DAG('quality_check_dag', description='Run daily QC checks', schedule_interval='0 8 * * *', # 每天早上8点执行 start_date=datetime(2024, 1, 1)) qc_task = PythonOperator(task_id='run_qc', python_callable=run_quality_check, dag=dag) ``` #### 5. 构建可视化与告警机制 使用Grafana或Kibana对质检结果进行可视化展示,并设置阈值触发告警。例如,配置Prometheus监控指标: ```yaml groups: - name: qc-alert rules: - alert: HighErrorRate expr: qc_error_rate > 0.1 for: 5m labels: severity: warning annotations: summary: "High error rate in data quality checks" description: "Error rate is above 10% (current value: {{ $value }}%)" ``` #### 6. 持续优化与迭代 根据实际运行效果不断调整检测规则、优化性能瓶颈,并引入机器学习方法进行异常检测和趋势预测。 ### 四、部署与运维 - 使用Docker或Kubernetes进行容器化部署,提高系统的可扩展性和可维护性。 - 结合CI/CD流水线实现自动化部署。 - 配置监控系统(如Prometheus + Grafana)实时监控系统健康状态。 ###
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值