首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏王磊的博客

    的缺点

    在BI业务中比比皆是,每次建设BI系统时首先要做的就是准备。有时系统中的可能会有上千个字段,经常因为“过宽”超过了数据库表字段数量限制还要再拆分。 为什么大家乐此不疲地造呢? 如果采用自动关联(根据字段类型等信息匹配)当遇到同维字段(如一个2个以上地区字段)时会“晕掉”不知道该关联哪个,间循环关联或自关联的情况也无法处理;如果将众多表开放给用户来自行选择关联,由于业务用户无法理解表间关系而几乎没有可用性 另外,如果构建的不合理还会出现汇总错误。比如基于一对多的A和B构建,如果A中有计算指标(如金额),在中就会重复,基于重复的指标再汇总就会出现错误。 c.cus_id JOIN city ct1 ON c.city_id = ct1.city_id JOIN employee e ON o.emp_id = e.emp_id JOIN city ct2 ON e.city_id = ct2.city_id WHERE ct2.area = 'east' AND year(o.order_date)= 2022 GROUP BY ct1.area,

    2.8K21编辑于 2023-02-16
  • 来自专栏暴走大数据

    实时数仓实践系列 | NO.2处理』

    比如说:离线的同事说离线昨天的数据订单是1w,实时昨天的数据确实2w,存在这么大的误差,到底是实时计算出问题了,还是离线出问题了呢? 这就需要对flink加工的实时进行存储了,这边考虑两种解决方案。 (1) 实时数据存储至elasticsearch ? 将加工的数据通过Flink写入es,这样可以得到所有数据的明细数据,拿着明细和其他数据提供方进行比对即可。 (2) 实时数据存储至HDFS,通过Hive进行查询 但是有一些朋友可能会说,es对应的sql count、group by语法操作,非常复杂,况且也不是用来做线上服务,而只是用与对数,所以时效性也不需要完全考虑 因此可以考虑采用下图的方案,将加工的通过Flink写入到HDFS,然后新建hive进行关联HDFS数据进行关联查询。 ?

    2.3K11发布于 2020-02-11
  • 来自专栏技术趋势

    什么是窄?什么是

    在数据库层面,什么是窄?什么是? 在数据库中,窄是两种设计思想,分别指的是列数少或者列数多的表格。 窄是指只包含少量列(如主键和几个属性)的表格。 能够提供更为全面和详细的数据,但同时也会带来一定的复杂度,包括查询效率下降等问题。 窄的选择取决于具体的业务需求和数据处理场景。需要根据实际情况进行评估、设计和优化。 表表解决了什么问题? 可以解决一些需要同时获取多个数据属性、进行数据分析和数据挖掘的问题。相对于狭窄的表格,可能会包含更多关联的信息,如不同维度、时间范围内的历史数据或聚合统计数据。 但是,需要注意的是,对查询性能和储存空间也提出了一些挑战,需要根据具体情况进行优化和平衡。 最后 简单来说就是通过一张来维护所有信息,而窄就是通过多张来维护信息。 当然看场景更有利弊,主要的大数据就是用来实现,而传统关系型数据是有窄

    4.6K21编辑于 2023-09-01
  • 来自专栏晨星先生的自留地

    字节注入(2

    昨晚折腾了一晚上,把大致的一些东西整理了下,为团队纳新选了几首音乐素材..然后团队的一个表弟来问我字节注入的事情了...然后就就才抽空写了一点作为上一篇mysql注入的补充。 使用addslashes来防御(addslashes函数会把' " %00 \ 这些字符前面加上一个\来转义他们) 设置数据库字符为gbk导致字节注入 ? 这样是失败的 ? 用get请求提交~ 这样url编码就会被解码,然后%df和%5c被还原成字节,運。 字节的问题我就不多说了,这边再提了一下是因为团队的一个表弟问的… 传送门: 面试中碰到的坑之字节(二) 要补充的是,錦”这个字,它的utf-8编码是0xe98ca6,它的gbk编码是0xe55c。 关于绕过: 一:字符编码问题导致绕过 · 2.1、设置数据库字符为gbk导致字节注入 · 2.2、使用icon,mb_convert_encoding转换字符编码函数导致字节注入 二:编码解码导致的绕过

    94240发布于 2018-06-07
  • 来自专栏Spark学习技巧

    HBase学习—高的选择

    utm_content=m_31236 hbase中的是指很多列较少行,即列多行少的,一行中的数据量较大,行数少;高是指很多行较少列,即行多列少,一行中的数据量较少,行数大。 据此,在HBase中使用、高的优劣总结如下: 查询性能:高更好,因为查询条件都在row key中, 是全局分布式索引的一部分。高一行中的数据较少。 分片能力:高分片粒度更细,各个分片的大小更均衡。因为高一行的数据较少,一行的数据较多。HBase按行来分片。 元数据开销:高元数据开销更大。 数据压缩比:如果我们对一行内的数据进行压缩,能获得更高的压缩比。因为中,一行的数据量较大,往往存在更多相似的二进制字节,有利于提高压缩比。 设计时,可以不绝对追求高,而是在两者之间做好**平衡**。

    2.7K50发布于 2018-01-31
  • 来自专栏张叔叔讲互联网

    人群创建的基础:画像

    ​本节主要介绍人群创建所依赖的画像的生成方式。为什么要创建画像?基于原始的标签数据进行人群圈选有什么问题?如何生成画像?针对这些问题本节会给出详细解答。 画像 本小节将首先介绍画像结构以及在人群创建中的主要优势,然后通过一个示例介绍画像的生成方式及优化手段,最后介绍画像数据写入ClickHouse的实现方案。 画像概念 假设用户的两个画像标签性别和常驻省分别存储在两张Hive中,其结构如图5-2所示。                        ON (t1.user_id = t2.user_id) 如果在河北省男性用户的基础上再增加一个筛选条件,比如河北省中年男性用户,按照SQL编写逻辑需要再次inner join用户年龄段标签。 userprofile_demo.userprofile_wide_table_ch (p_date, user_id, gender, province)VALUES('2022-07-28', 100, 1, '山东省'),('2022-07-28', 101, 2,

    1.7K20编辑于 2023-10-16
  • 来自专栏大数据-BigData

    hudi流式regular inner join关联写入实践

    hudi 增量读取hudi,增量关联两个中的数据 将关联后的数据写入中 具体实施 mysql中建 create database hudi_test; use hudi_test; create insert into orders values(1, 2); insert into product values(1, "phone"); 启动flink sql, flink sql中创建catalog MERGE_ON_READ', 'read.streaming.enabled' = 'true', 'compaction.async.enabled' = 'false' ); --- insert into orders values(2, 13); 202206161737814.png 这种情况下会等待product流到来并关联再往下游输出,此时再往product写数据 insert into product values(2, "door"); 202206161738752.png 查询数据得到 202206161738479.png 异常流操作 往orders

    1.4K30编辑于 2022-06-19
  • 来自专栏一个会写诗的程序员的博客

    使用 Hive 炸裂函数 explode (map) 转高

    Hive 炸裂函数 explode(map<string,string>) 转高SQL: select slice_id, user_id, shop_id, 'user_stats_public select inline(array(struct('A',10,date '2015-01-01'),struct('B',20,date '2016-02-02'))) as (col1,col2, col3; stack (values) select stack(2,'A',10,date '2015-01-01','B',20,date '2016-01-01'); select stack( 2,'A',10,date '2015-01-01','B',20,date '2016-01-01') as (col0,col1,col2); select tf.* from (select 0) 0) t lateral view stack(2,'A',10,date '2015-01-01','B',20,date '2016-01-01') tf as col0,col1,col2; Using

    2.8K20编辑于 2021-12-24
  • 来自专栏数据分析1480

    【Hive】从长格式格式的转换

    前言 使用sql代码作分析的时候,几次遇到需要将长格式数据转换成格式数据,一般使用left join或者case when实现,代码看起来冗长,探索一下,可以使用更简单的方式实现长格式数据转换成格式数据 格式数据:每个变量单独成一列为格式数据,例如变量name、age等。 长格式数据:长数据中变量的ID没有单独列成一列,而是整合在同一列。 需求描述 某电商数据库中存在一张客户信息user_info,记录着客户属性数据和消费数据,需要将左边长格式数据转化成右边格式数据。 ? 需求实现 做以下说明 ? 格式的数据u001 {"age":"25","education":"master","first_buytime":"2018/1/3","name":"Sulie","regtime":"2018/1/2" name sex age education regtime first_buytimeu001 Sulie male 25 master 2018/1/2

    3.1K20发布于 2019-05-22
  • 来自专栏算法channel

    深入Python数据分析:如何重构为长

    pd.melt(df2, id_vars=['a'], value_vars=['b', 'c', 'd']) ? 变化后的结构行数明显变更多了,由9行组成,但是列变少了,只有3列。 这里面引出2个概念: ( wide format) :指列数比较多 长( long format) :行数比较多 回头核对官方给定melt的功能和参数 ? 思考 melt()函数的作用,它能将变化为长。在做特征分析列数较多,即为时,我们不妨选择某些列为unpivot列,从而降低维度,增加行数据实现对数据的重构。

    2.8K10发布于 2019-05-28
  • 来自专栏Python学习必看

    对比excel,用python实现逆透视操作(变长

    大家好 最近看到群友们在讨论一个变长的问题,其实这类需求也很常见于我们日常的数据处理中。综合群友们的智慧,今天我们就来看看excel与python如何实现这个需求吧! 第一步:选中数据,然后在菜单栏-数据-点击来自表格/区域 [format,png] 选中数据-来自表格 第二步:创建的时候,根据实际情况选中是否包含标题(本例不包含) [format,png] 创建 (删掉无关列属性即可) [format,png] 最终结果数据 2. , # 标识变量的列 value_vars=df.columns[2:], # 注释掉结果一样 ignore_index=True, # 忽略索引 ] 爆炸列完成需求 以上就是本次的全部内容,围绕着关于转长,也就是逆透视的操作。

    2.1K50编辑于 2022-01-08
  • 来自专栏小网管的运维之路

    使用DataEase 关联数据集制作

    DE_ENGINE_MODE=local 定时同步配置 数据集 目前支持创建的数据集类型有数据库数据集、SQL 数据集、Excel 数据集、关联数据集、API 数据集五种: 数据库数据集指直接选择数据库中某一作为数据集

    79230编辑于 2023-10-27
  • 来自专栏数据分析1480

    【Hive】再看看如何将转换成长

    前面已经介绍了在Hive中如何将长格式数据转换成格式数据,现介绍一下在Hive中如何将格式数据转换成长格式数据。 【Hive】实现长格式数据转换成格式数据 需求描述 某电商数据库中存在user_info1,以格式数据记录着客户属性数据和消费数据,需要将左边user_info1格式数据转化成右边长格式数据 3","name":"Sulie","regtime":"2018/1/2","sex":"male"}u002 {"age":"30","education":"Bachelor","first_buytime u001 sex maleu001 age 25u001 education masteru001 regtime 2018/1/2u001 会发现不管是将长格式数据转换成格式数据还是将格式数据转换成长格式数据,都是先将数据转换成map格式数据。

    3.2K20发布于 2019-05-22
  • 来自专栏木东居士的专栏

    DataTalk:是一个好还是多个维好?

    0x01 讨论 问题: 在设计数据的时候,是一个好,还是多个维度好? 回答一: 数据仓库每张的搭建,主要依赖于这个在整个数据仓库中的作用和相关意义。 数据的安全问题,每张数据的安全范围不同,合并成同一张是面临的是更大的权限开放。比如订单可能仅需要让一部分人员知晓订单信息,并不想让他们知道供应商信息。 若是机器学习模型的同学要数据的话,我们就只需要从维度,度量表,事实中抽取数据做成大给他们了,由于模型做的比较少,对于大的经验比较少,暂时只能来一个模型数据的需求,单独写sql语句去抽取。 虽然,这样看起来会占用更多的存储空间,但不失为一种合适的解决方案,因为是通过别的拼接而成的,因此的存储周期是可以短一些。 只存多个维度,通过视图来创建。 这种方式适合于的查询次数较少的情况。比如在Hive中,其实只是为了计算出来之后导入Es等系统中供其它系统查询,那么久没必要存储一份,直接通过视图来封装就可以。

    5.8K30发布于 2018-05-25
  • 指标平台选型关键与无计算方案

    其根源在于,传统的“数仓++BI”模式在面对灵活多变的复杂业务逻辑时,存在结构性瓶颈,即“依赖症”。 二、核心差异:静态计算 vs 动态语义编织性能与灵活性困境的根本差异,源于底层架构的范式革新。传统模式(静态计算):其核心是 “预计算、后查询” 。 七、常见问题 (FAQ)Q1: 什么是“无计算”?它如何保证查询性能?“无计算”指不依赖预建的物理,而是通过语义编织技术在逻辑层构建虚拟业务事实网络。 Q2: Aloudata CAN 能处理哪些传统难以定义的复杂指标? 主要支持四大类:1) 指标转标签(如“近30天有购买行为的用户”);2) 时间维度多次聚合(如“月日均交易额最大值”);3) 跨复合指标(如“渠道ROI”,需关联订单与营销费用);4) 自定义周期指标

    14610编辑于 2026-02-10
  • 来自专栏暴走大数据

    实时数仓实践系列 | NO.1『处理』

    二、实时数仓实践中问题 下面是在实时数据仓库加工过程中,经常会遇到的一些问题: 1.需要关联维信息(与离线数仓类似需要关联维信息,但是实时数据中并没有维信息) 2.接收多个消息,消息先后顺序无法保证 (离线中数据都已经同步,不存在先后问题) 3.一条与信息相关的所有消息是否全部到达(离线可以看作是当天的快照,但实时没办法判断是否全部到达) 三、表解决方案 针对上述问题、结合工作中的遇到的一些场景, 做一些总结,探讨下实时加工方案: 1.如何关联维信息问题:比如说我们计算订单相关数据,需要查询部门或者收货地址的地区等等,需要关联部门相关的维或者地址信息维2.多个消息无法保证先后顺序问题:还拿订单场景为例,比如我们需要统计订单支付金额,涉及到下单消息、支付消息,正常情况(支付消息后来,但是没办法保证) 解决方案:将消息进行分别存储至hbase, (1)下单消息到了去查询支付消息 下发出来的数据: (1)A (2)A、B (3)A、B、C 可以看到上述总共发了3次消息,其中A消息发了3次,B消息发了2次,C消息发了1次。

    3.3K11发布于 2020-02-11
  • 来自专栏数据库与编程

    在 Oracle 23c 中的设置

    在 Oracle 23c 中,数据库或视图中允许的最大列数已增加到 4096。此功能允许您构建可以在单个中存储超过之前 1000 列限制的属性的应用程序。 可以使用 MAX_COLUMNS 参数启用或禁用数据库的。 String 要启用,将 MAX_COLUMNS 参数设置为 EXTENDED。 通过此设置,数据库或视图中允许的最大列数为 4096。 COMPATIBLE 初始化参数必须设置为 23.0.0.0 或更高才能设置 MAX_COLUMNS = EXTENDED。 要禁用,请将 MAX_COLUMNS 参数设置为 STANDARD。通过此设置,数据库或视图中允许的最大列数为 1000。 但是,仅当数据库中的所有和视图包含 1000 或更少的列时,才可以将 MAX_COLUMNS 的值从 EXTENDED 更改为 STANDARD。

    1.2K20编辑于 2023-10-23
  • 来自专栏全栈学习专栏

    告别,用 DQL 成就新一代 BI

    当然有的BI厂商的建模,不叫,事实上他们也确实比做了更多的准备和优化,但归根结底,不管是CUBE,还是立方体,还是其他名字,本质都还是一个,逻辑上并没有脱离的范畴,分析需求变动时,还是得技术人员去改 订单明细 T2 ON T1.订单编号=T2.订单编号 GROUP BY T1.订单编号,T1.客户 要完成这个运算,不仅要用到 JOIN,还需要做一次 GROUP BY,否则选出来的记录数太多 T2.日期 LEFT JOIN (SELECT 日期, SUM(金额) 金额 FROM 库存 GROUP BY 日期 ) T3 ON T2.日期=T3.日期 用子查询把每个分组汇总后再 地区 地区,SUM(合同.金额) 金额 FROM 客户,合同 WHERE 客户.编号=合同.客户 GROUP BY 客户.地区 ) T2 ON T1.地区 = T2.地区 这个子查询很复杂 ,占用数据库资源 它的关联关系只要数据本身结构不变,就不用修改元数据,不需要像一样总得重新生成,相当于一次定义可以适应无数次不同的分析需求,它拥有的优势但从根本上解决了的各种弊端 这就是所谓的非按需建模

    1.1K20编辑于 2022-11-11
  • 来自专栏灰小猿技术社区

    告别,用 DQL 成就新一代 BI

    当然有的BI厂商的建模,不叫,事实上他们也确实比做了更多的准备和优化,但归根结底,不管是CUBE,还是立方体,还是其他名字,本质都还是一个,逻辑上并没有脱离的范畴,分析需求变动时,还是得技术人员去改 订单明细 T2 ON T1.订单编号=T2.订单编号 GROUP  BY  T1.订单编号,T1.客户 要完成这个运算,不仅要用到 JOIN,还需要做一次 GROUP BY,否则选出来的记录数太多 T2.日期 LEFT JOIN (SELECT 日期, SUM(金额) 金额 FROM 库存 GROUP BY 日期 ) T3 ON T2.日期=T3.日期 用子查询把每个分组汇总后再 地区 地区,SUM(合同.金额) 金额 FROM 客户,合同 WHERE 客户.编号=合同.客户 GROUP BY 客户.地区 ) T2 ON T1.地区 = T2.地区 这个子查询很复杂 ,占用数据库资源 它的关联关系只要数据本身结构不变,就不用修改元数据,不需要像一样总得重新生成,相当于一次定义可以适应无数次不同的分析需求,它拥有的优势但从根本上解决了的各种弊端 这就是所谓的非按需建模

    1.6K10编辑于 2022-06-15
  • 来自专栏木东居士的专栏

    数据百问系列:是一个好还是多个维好?

    问题: 在设计数据的时候,是一个好,还是多个维度好? 数据的安全问题,每张数据的安全范围不同,合并成同一张是面临的是更大的权限开放。比如订单可能仅需要让一部分人员知晓订单信息,并不想让他们知道供应商信息。 若是机器学习模型的同学要数据的话,我们就只需要从维度,度量表,事实中抽取数据做成大给他们了,由于模型做的比较少,对于大的经验比较少,暂时只能来一个模型数据的需求,单独写sql语句去抽取。 虽然,这样看起来会占用更多的存储空间,但不失为一种合适的解决方案,因为是通过别的拼接而成的,因此的存储周期是可以短一些。 只存多个维度,通过视图来创建。 这种方式适合于的查询次数较少的情况。比如在Hive中,其实只是为了计算出来之后导入Es等系统中供其它系统查询,那么久没必要存储一份,直接通过视图来封装就可以。

    2.5K20发布于 2020-06-01
领券