大数据中的常见数据问题:独断脏

想象你刚刚入职一家声称正在进行"数字化转型"的大型企业,担任大数据开发工程师。在入职的第一周,你满怀热情,迫不及待地想要大展拳脚,用你的技能来推动公司的数据驱动决策。
image.png

目录

  • 大数据中的常见数据问题
    • 1. 独 - 数据孤岛
    • 2. 断 - 数据价值链断层
    • 3. 缺 - 标准、治理、数据等缺失
    • 4. 难 - 数据难以获取、理解和追溯
    • 5. 脏 - 数据质量差
    • 6. 安全 - 数据泄露风险
    • 总结

然而,随着你开始深入了解公司的数据基础设施和流程,你逐渐意识到面前的挑战比你预想的要大得多:

  • 你试图获取一些历史销售数据进行分析,但发现销售部门的数据存储在一个与公司主系统完全隔离的老旧数据库中。
  • 当你尝试整合来自不同部门的客户数据时,你发现每个部门都使用不同的客户ID格式,使得数据匹配变得极其困难。
  • 你编写了一个数据处理脚本,但在运行时发现大量的数据质量问题,包括缺失值、异常值和明显的错误输入。
  • 当你询问某些数据字段的含义时,没有人能给你一个明确的答案,而且你找不到任何相关的数据字典或文档。
  • 你提出要将一些敏感数据传输到云端进行处理,但IT安全团队表示严重担忧,认为这可能会带来数据泄露的风险。
  • 你开发的一个预测模型表现良好,但当你向业务部门展示时,他们表示看不懂这些数据意味着什么。

面对这些挑战,你意识到在这家公司实现真正的数据驱动决策还有很长的路要走。你决定系统地梳理这些问题,以便更好地理解和解决它们。

大数据中的常见数据问题

1. 独 - 数据孤岛

image.png

数据孤岛是指信息系统或组织单元之间无法有效共享数据的情况。这导致了重复开发和资源浪费。

例子:

  • 一家大型零售公司的销售部门和库存管理部门使用不同的系统,无法实时共享数据。
  • 政府不同部门之间的信息系统不互通,导致公民需要重复提供相同信息。

代码示例(Python):

# 销售部门的数据库
sales_db = {
    "product_a": {"sales": 1000, "revenue": 50000},
    "product_b": {"sales": 800, "revenue": 40000}
}

# 库存部门的数据库
inventory_db = {
    "product_a": {"stock": 500},
    "product_b": {"stock": 200}
}

# 由于数据孤岛,我们无法直接获取销售和库存的综合信息
# 需要手动整合数据
def get_product_info(product):
    if product in sales_db and product in inventory_db:
        return {
            "sales": sales_db[product]["sales"],
            "revenue": sales_db[product]["revenue"],
            "stock": inventory_db[product]["stock"]
        }
    return None

print(get_product_info("product_a"))

2. 断 - 数据价值链断层

image.png

数据价值链断层指的是数据从收集到最终利用的过程中出现断裂,导致数据价值无法充分发挥。

例子:

  • 一家电商平台收集了大量用户浏览数据,但分析团队缺乏相应的技能来解读这些数据。
  • 医疗机构收集了患者的基因数据,但缺乏将这些数据转化为个性化治疗方案的能力。

代码示例(Python):

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# 假设我们有用户浏览数据
df = pd.DataFrame({
    'user_id': range(1000),
    'page_views': np.random.randint(1, 100, 1000),
    'time_spent': np.random.randint(10, 3600, 1000),
    'purchases': np.random.randint(0, 5, 1000)
})

# 尝试建立一个预测模型
X = df[['page_views', 'time_spent']]
y = df['purchases']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

model = LinearRegression()
model.fit(X_train, y_train)

# 模型评分
print(f"Model Score: {model.score(X_test, y_test)}")

# 但是,如果分析团队不理解这个模型或不知道如何解释结果,
# 那么这个模型就无法为业务决策提供有价值的指导

3. 缺 - 标准、治理、数据等缺失

这个问题涉及到数据管理的多个方面,包括缺乏统一标准、数据治理机制、必要数据、规范流程、专门组织和管理制度等。

image.png

例子:

  • 一家跨国公司在不同国家的分支机构使用不同的客户信息格式,导致数据整合困难。
  • 一个研究项目缺少关键的人口统计数据,影响了分析的准确性。

代码示例(Python):

# 假设我们有来自不同国家的客户数据,格式不统一
us_customers = [
    {"name": "John Doe", "phone": "1234567890"},
    {"name": "Jane Smith", "phone": "0987654321"}
]

uk_customers = [
    {"full_name": "David Brown", "tel": "+44 1234567890"},
    {"full_name": "Emma Wilson", "tel": "+44 0987654321"}
]

# 由于缺乏统一标准,我们需要手动处理数据
def standardize_customer(customer, country):
    if country == "US":
        return {
            "full_name": customer["name"],
            "phone_number": "+1 " + customer["phone"]
        }
    elif country == "UK":
        return {
            "full_name": customer["full_name"],
            "phone_number": customer["tel"]
        }

# 标准化数据
standardized_customers = (
    [standardize_customer(c, "US") for c in us_customers] +
    [standardize_customer(c, "UK") for c in uk_customers]
)

print(standardized_customers)

4. 难 - 数据难以获取、理解和追溯

这个问题涉及到数据的可访问性、可理解性和可追溯性。

例子:

  • 一家公司的历史数据存储在旧系统中,新员工难以访问和理解这些数据。
  • 一个数据分析项目中的某些结果无法追溯到原始数据源,影响了结果的可信度。
    image.png

代码示例(Python):

import hashlib
import json
from datetime import datetime

class DataRecord:
    def __init__(self, data, source):
        self.data = data
        self.source = source
        self.timestamp = datetime.now().isoformat()
        self.hash = self._calculate_hash()

    def _calculate_hash(self):
        record = json.dumps({"data": self.data, "source": self.source, "timestamp": self.timestamp})
        return hashlib.sha256(record.encode()).hexdigest()

    def __str__(self):
        return f"Data: {self.data}, Source: {self.source}, Timestamp: {self.timestamp}, Hash: {self.hash}"

# 创建一些数据记录
record1 = DataRecord("User A purchased Product X", "Sales System")
record2 = DataRecord("Product X inventory decreased by 1", "Inventory System")

print(record1)
print(record2)

# 这种方法可以帮助追踪数据的来源和变化,但仍然需要额外的系统来管理这些记录

5. 脏 - 数据质量差

数据质量问题包括不准确、不完整、不一致、重复等情况。

image.png

例子:

  • 客户数据库中存在大量重复或过时的联系信息。
  • 传感器数据中包含异常值,影响了数据分析的准确性。

代码示例(Python):

import pandas as pd
import numpy as np

# 创建一个包含一些"脏"数据的DataFrame
df = pd.DataFrame({
    'name': ['John', 'Jane', 'John', 'Bob', 'Alice', np.nan],
    'age': [30, 25, 30, -5, 200, 35],
    'email': ['john@example.com', 'jane@example', 'john@example.com', 'bob@example.com', 'alice@example.com', 'invalid']
})

print("Original data:")
print(df)

# 数据清洗
def clean_data(df):
    # 删除重复行
    df = df.drop_duplicates()
    
    # 处理缺失值
    df['name'] = df['name'].fillna('Unknown')
    
    # 修正异常值
    df.loc[df['age'] < 0, 'age'] = np.nan
    df.loc[df['age'] > 120, 'age'] = np.nan
    
    # 验证邮箱格式
    df['valid_email'] = df['email'].str.contains(r'[^@]+@[^@]+\.[^@]+')
    
    return df

cleaned_df = clean_data(df)
print("\nCleaned data:")
print(cleaned_df)

6. 安全 - 数据泄露风险

数据安全问题涉及未经授权的访问、数据泄露、隐私保护等方面。

image.png

例子:

  • 一家公司的客户信息数据库被黑客入侵,导致敏感信息泄露。
  • 医疗机构的患者记录在未经适当加密的情况下通过不安全的网络传输。

代码示例(Python):

import bcrypt
import os
from cryptography.fernet import Fernet

# 模拟用户数据
user_data = {
    "username": "john_doe",
    "password": "password123",
    "email": "john@example.com",
    "credit_card": "1234-5678-9012-3456"
}

# 1. 安全存储密码
def hash_password(password):
    salt = bcrypt.gensalt()
    return bcrypt.hashpw(password.encode(), salt)

user_data["password"] = hash_password(user_data["password"])

# 2. 加密敏感信息
def encrypt_data(data):
    key = Fernet.generate_key()
    fernet = Fernet(key)
    return fernet.encrypt(data.encode()), key

user_data["credit_card"], encryption_key = encrypt_data(user_data["credit_card"])

print("Secured user data:")
print(user_data)
print(f"Encryption key: {encryption_key}")

# 注意: 在实际应用中,加密密钥应该安全存储,而不是打印出来

总结

image.png

  1. 独(数据孤岛):

    • 问题: 信息系统或部门间数据无法有效共享
    • 后果: 重复开发,资源浪费
    • 解决思路: 建立统一的数据平台,打破部门壁垒
  2. 断(数据价值链断层):

    • 问题: 数据收集到利用过程中出现断裂
    • 后果: 数据价值无法充分发挥
    • 解决思路: 建立完整的数据分析流程,提升数据分析能力
  3. 缺(标准、治理等缺失):

    • 问题: 缺乏统一标准、治理机制、必要数据等
    • 后果: 数据管理混乱,难以整合和利用
    • 解决思路: 制定数据标准,建立数据治理体系
  4. 难(数据难以获取、理解和追溯):

    • 问题: 数据访问困难,缺乏文档,来源不明
    • 后果: 数据使用效率低,结果可信度受质疑
    • 解决思路: 改善数据访问机制,完善元数据管理
  5. 脏(数据质量差):

    • 问题: 数据不准确、不完整、不一致、重复等
    • 后果: 影响分析结果的准确性和可靠性
    • 解决思路: 建立数据质量管理体系,定期清洗和验证数据
  6. 安全(数据泄露风险):

    • 问题: 数据面临未授权访问、泄露等安全威胁
    • 后果: 可能导致隐私泄露,造成经济和声誉损失
    • 解决思路: 实施严格的数据安全措施,如加密、访问控制等

这些问题往往是相互关联的,需要从技术、管理、政策等多个角度综合考虑,建立完善的数据治理体系来解决。有效的数据管理不仅可以提高数据质量和可用性,还能显著提升组织的决策能力和竞争力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/778276.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

并口、串口和GPIO口区别

并口 并行接口,简称并口。并口采用的是25针D形接头。所谓“并行”,是指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错,目前,并行接口主要作为打印机端口等。 并口的工作模式 …

ctfshow web 36d 练手赛

不知所措.jpg 没啥用然后测试了网站可以使用php伪达到目的 ?filephp://filter/convert.base64-encode/resourcetest/../index.<?php error_reporting(0); $file$_GET[file]; $file$file.php; echo $file."<br />"; if(preg_match(/test/is,$file)){inclu…

安全测试之使用Docker搭建SQL注入安全测试平台sqli-labs

1 搜索镜像 docker search sqli-labs 2 拉取镜像 docker pull acgpiano/sqli-labs 3 创建docker容器 docker run -d --name sqli-labs -p 10012:80 acgpiano/sqli-labs 4 访问测试平台网站 若直接使用虚拟机&#xff0c;则直接通过ip端口号访问若通过配置域名&#xff0…

【论文笔记】UniST:通用预训练城市时空预测模型

目录 写在前面1. 通用时空模型的挑战与能力特性2. 构建通用时空模型UniST2.1 大规模时空预训练2.2 时空知识规则引导提示学习 3. UniST的实验与分析3.1 模型预测效果3.2其他实验分析 写在前面 文章标题&#xff1a;UniST: A Prompt-Empowered Universal Model for Urban Spati…

基于SpringBoot+Vue的招生管理系统(带1w+文档)

基于SpringBootVue的招生管理系统(带1w文档&#xff09; 通过招生管理系统的研究可以更好地理解系统开发的意义&#xff0c;而且也有利于发展更多的智能系统&#xff0c;解决了人才的供给和需求的平衡问题&#xff0c;招生管理系统的开发建设&#xff0c;由于其开发周期短&…

linux centos 安装niginx并且添加ssl(https)模块

文章目录 前言一、nginx安装教程1.流程步骤 总结 前言 一、nginx安装教程 1.流程步骤 代码如下&#xff08;示例&#xff09;&#xff1a; 1.先下载linux安装包 2.解压安装命令 sudo tar -zxvf nginx-1.20.1.tar.gz3.进入解压后的目录 sudo cd nginx-1.20.14.安装 sudo y…

AntDesign上传组件upload二次封装+全局上传hook使用

文章目录 前言a-upload组件二次封装1. 功能分析2. 代码详细注释3. 使用到的全局上传hook代码4. 使用方式5. 效果展示 总结 前言 在项目中&#xff0c;ant-design是我们常用的UI库之一&#xff0c;今天就来二次封装常用的组件a-upload批量上传组件,让它用起来更方便。 a-uploa…

C++ | Leetcode C++题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; class Solution { public:int robRange(vector<int>& nums, int start, int end) {int first nums[start], second max(nums[start], nums[start 1]);for (int i start 2; i < end; i) {int temp second;second max(fi…

Nacos服务注册总流程(源码分析)

文章目录 服务注册NacosClient找看源码入口NacosClient服务注册源码NacosServer处理服务注册 服务注册 服务注册 在线流程图 NacosClient找看源码入口 我们启动一个微服务&#xff0c;引入nacos客户端的依赖 <dependency><groupId>com.alibaba.cloud</groupI…

工作两年后,我如何看待设计模式

在软件工程中&#xff0c;设计模式是经过反复验证的最佳实践&#xff0c;用于解决在软件设计中经常遇到的一类问题。它们为开发者提供了一种通用的解决方案和语言&#xff0c;使得复杂的编程问题得以简化&#xff0c;代码结构更加清晰&#xff0c;可维护性大大提高。简而言之&a…

PostgreSQL 如何优化存储过程的执行效率?

文章目录 一、查询优化1. 正确使用索引2. 避免不必要的全表扫描3. 使用合适的连接方式4. 优化子查询 二、参数传递1. 避免传递大对象2. 参数类型匹配 三、减少数据量处理1. 限制返回结果集2. 提前筛选数据 四、优化逻辑结构1. 分解复杂的存储过程2. 避免过度使用游标 五、事务处…

隐私计算实训营第二期第七课:XGB算法与SGB算法开发实践

隐私计算实训营第二期-第七课 第七课&#xff1a;XGB算法与SGB算法开发实践1 决策树模型1.1 决策树的训练和预测过程1.2 决策树的发展过程 2 GBDT模型2.1 Boosting核心思想2.2 GBDT原理 3 XGB模型3.1 XGB核心思想3.2 XGB优点 3 隐语纵向树模型3.1 数据纵向分割3.2 隐私保护的树…

本地部署到服务器上的资源路径问题

本地部署到服务器上的资源路径问题 服务器端的源代码的静态资源目录层级 当使用Thymeleaf时&#xff0c;在templates的目录下为返回的html页面&#xff0c;下面以两个例子解释当将代码部署到tomcat时访问资源的路径配置问题 例子一 index.html&#xff08;在templates的根目录…

EtherCAT转Profinet网关配置说明第二讲:上位机软件配置

EtherCAT协议转Profinet协议网关模块&#xff08;XD-ECPNS20&#xff09;&#xff0c;不仅可以实现数据之间的通信&#xff0c;还可以实现不同系统之间的数据共享。EtherCAT协议转Profinet协议网关模块&#xff08;XD-ECPNS20&#xff09;具有高速传输的特点&#xff0c;因此通…

安卓安全概述

安卓安全概述 1.Android系统概述2.Android系统安全概述3.Android系统的安全机制应用程序框架安全机制内核安全机制运行环境安全机制 4.Android反编译工具 1.Android系统概述 Android采用层次化系统架构&#xff0c;Google官方公布的标准架构如图所示&#xff0c;自顶而下划分为…

vue事件处理v-on或@

事件处理v-on或 我们可以使用v-on指令&#xff08;简写&#xff09;来监听DOM事件&#xff0c;并在事件触发时执行对应的Javascript。用法&#xff1a;v-on:click"methodName"或click"hander" 事件处理器的值可以是&#xff1a; 内敛事件处理器&#xff1…

【MindSpore学习打卡】应用实践-自然语言处理-基于RNN的情感分类:使用MindSpore实现IMDB影评分类

情感分类是自然语言处理&#xff08;NLP&#xff09;中的一个经典任务&#xff0c;广泛应用于社交媒体分析、市场调研和客户反馈等领域。本篇博客将带领大家使用MindSpore框架&#xff0c;基于RNN&#xff08;循环神经网络&#xff09;实现一个情感分类模型。我们将详细介绍数据…

【数据结构(邓俊辉)学习笔记】高级搜索树01——伸展树

文章目录 1. 逐层伸展1. 1 宽松平衡1. 2 局部性1. 3 自适应调整1. 4 逐层伸展1. 5 实例1. 6 一步一步往上爬1. 7 最坏情况 2. 双层伸展2.1 双层伸展2.2 子孙异侧2.3 子孙同侧2.4 点睛之笔2.5 折叠效果2.6 分摊性能2.7 最后一步 3 算法实现3.1 功能接口3.2 伸展算法3.3 四种情况…

uniapp H5页面设置跨域请求

记录一下本地服务在uniapp H5页面访问请求报跨域的错误 这是我在本地起的服务端口号为8088 ip大家可打开cmd 输入ipconfig 查看 第一种方法 在源码视图中配置 "devServer": {"https": false, // 是否启用 https 协议&#xff0c;默认false"port&q…

vb.netcad二开自学笔记5:ActiveX链接CAD的.net写法

一、必不可少的对象引用 使用activex需要在项目属性中勾选以下两个引用&#xff0c;若找不到&#xff0c;则浏览定位直接添加下面两个文件&#xff0c;可以看到位于cad的安装路径下&#xff0c;图中的3个mgd.dll也可以勾选。 C:\Program Files\Autodesk\AutoCAD 2024\Autodes…