weixin_43113933
2019-11-08 22:58
采纳率: 97.2%
浏览 1.1k

数据仓库吐血求解,面试题

面试:在数据仓库中,你怎么验证你处理的数据的准确性
答:我说可以验证数据量。(这个也是瞎掰)
面试:那拉取过来的数据就是错误的怎么办?
我:。。。。。
求解大神,不胜感激,最好连贯完整一些

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • 周祭酒 2019-11-09 11:17
    已采纳

    拉取数据错误,我怎么知道?不去找抓取数据的人,写爬虫的人,问拿数据的人?

    应该指的是传输过程中丢包导致接收数据错误的问题。
    那就可以参考协议的处理思路了,比如数据头带数据总长度,接收完数据长度不对说明有问题
    有问题怎么解决呢,网络差时减小每次传输的数据量,好时加大。
    数据安全怎么搞呢,加密算法。有哪些加密算法啊,对称非对称。效率如何啊,算了,我还是走吧。。。

    打赏 评论
  • 我的萨摩耶贼凶 2019-11-20 16:33

    这个就不是你的责任了啊。比如是银行系统,你给 明细和总账,如果有规则我能根据规则用明细去验证总账,但只给总账,我无法验证这个数据的正确性啊,这是你的上游出的问题啊,甩锅吧,跟你没有关系

    打赏 评论
  • Shang1031 2020-01-10 20:17

    **这个问法很奇怪。

    首先,对于数据仓库来说,本身就是面向主题的,如果按照用户期望的主题进行正确的设计查询语句,
    在ETL的过程中除非是数据本身有问题,比如违背唯一性,数据完整性等,
    如果查询语句没任何问题,数据没问题。你最后得到的答案一定是准确的。

    其次,如果非要“验证准确性”,那么可以尝试进行对数据仓库一般的查询(此时就是普通数据库查询)。

    比如:

    超市产品经理想知道:我们公司于**2017-2019**之间在**北京和上海**的**酒类**以及**不含酒精饮料**的**销售**状况。

    经过数据仓库设计查询语句获得结果,而想知道结果到底准确与否,那么可以分别进行查询:

    查询**2017**年在**北京**的**酒类**的**销售**情况,
    查询**2018**年在**北京**的**酒类**的**销售**情况,
    查询**2019**年在**北京**的**酒类**的**销售**情况,
    ... ...以此类推下去,然后核对每一次检索的结果

    但是,这样验证是很幼稚的方法,如果语句都没错,数据本身有错,你验证出来的结果也只是对错误数据的肯定。

    所以验证准确性这个问法非常的奇怪。

    我也不知道回答的准确与否,一起讨论,希望能帮到你。

    打赏 评论
  • 雨霁赤赤 2020-02-25 08:05

    1.验证数据的总数与明细
    2.因为对数仓是分层的,如果想要验证最终的准确性的话,可以逐测根据业务场景造数据验证。
    比如:想要查询2020年2月18日买车的人的总数,
    那么就可以到dw以及ods层每层都去查询当天的人,最后count一下是否能够和dm数据对上。
    如果还是不对,就去业务系统的原始数据中查询是否是抽的数据不对,如果验证正确。那么就问下业务系统开发看看是不是bug。

    打赏 评论

相关推荐 更多相似问题