[分享]微软BI专题-基于OLAP的时间维度设计

市场营销人员如何用BI工具进行多维度数据分析?仅需7步 市场营销是企业的命脉,肯定少不了营销数据分析和统计。跟着感觉走的营销策略时代已经一去不回。 快速简单地区分多渠道 ROI 的营销行动,这似乎也已成为过眼云烟。 随着商业大数据重要性的不断提升,通过对对客户、业务、营销、竞争方面的深入分析,挖掘数据背后的规律和隐含的信息已经成为大多数企业提升业绩的重要手段。 提升企业的科学管理和科学决策的水平,制订有针对性和便于实施的营销战略才能为企业发... 阅读详情
 时间维度在OLAP中是一个使用的很频繁的概念,通常要根据实际需求进行定义和架构,使其不仅能够满足现有基于时间分析的需求,还具有良好的可扩展性和可持续性。本文主要以SQL Server 2005为平台较为全面地介绍了时间维度的常见设计方法,并对其在OLAP中的架构方式进行了简单的阐述。
 
      时间维度简介
      在SQL Server 2005 Analysis Services(SSAS)中,时间维度是指那些属性表示时间段(如年、半期、季度、月和天)的维度类型。时间维度中的时间段可提供用于分析和报告的基于时间的粒度级别。属性将按层次结构进行组织,并且时间维度的粒度主要由历史数据的业务和报表需求决定。例如,商业智能应用程序中的大多数财务数据和销售数据使用月粒度或季度粒度。
 
      一般情况下,Analysis Services中的多维数据集会以某种形式共用一个时间维度。有些情况也会需要用到多个时间维度,这些具体的时间维度架构将取决于数据的粒度和前端展示需求。但并非所有多维数据集都需要时间维度,如果多维数据集所要实现的所有功能都与时间无关,也就没有必要再定义一个时间维度了。
 
      与时间维度相关的分析非常多,在此以销售为例:
1、  如何获得一周中的每一天的销售额?
2、  如何获得一年中每个月的销售总量?
3、  如果获得一年中每个财务月的销售总额?
4、  如果获得一年中所有节假日超市促销的销售总额?
日常使用的时间维度通常只有日期维度,大致如图1所示。
图1:日常使用的时间维度
 
      时间维度设计注意事项
      在Kimball的维度设计理念中提到,所有维度都应当使用代理键,这一点既有基于跟踪维度属性变化的需求,也有集成多个系统所带来的挑战。
 
      时间维度可以使用代理键,也可以使用时间作为主键,比如日期维度可以使用日期作为主键,也可以使用有意义的数值作为代理键。具体来说,可以使用年月日顺序表示日期对应的整数,故2005年1月1日可以表示为20050101,如用theDate表示日期“2005-01-01”,则相应的timeKey可以使用下面的方法(T-SQL)生成:
 
以下是代码:
set timeKey = cast((left(convert(nvarchar,thedate,23),4)+substring(convert(nvarchar,thedate,23),6,2)+substring(convert(nvarchar,thedate,23),9,2))as int)
 
      对关系数据库来说,这样的做法可以显著提高查询性能,同时也简化实现基于日期的划分,并且划分也变得容易理解。
 
      但也并不是所有情况下都可以教条地使用代理键,对于一个日期属性,当其具有业务上的意义时才使用代理键。
 
      时间维度分类
在SSAS中,时间维度按照存储的方式不同分为两类:
 
1、普通时间维度:与其它维度类似,时间维度也使用维度表提供的维度属性,事实数据表通过外键与时间维度关联。时间维度存在一个单独物理数据表。
2、服务器时间维度:通过SSAS基于时间段定义的一个虚拟维度,通过总线矩阵建立度量值组与时间维度之间的关系。
 
      时间维度与常规维度的区别
      时间维度在本质上与任何其它标准维度没有区别。虽然如此,在SSAS中,一旦定义了时间维度,便具备了比其它标准维度更方便的功能:这一点主要体现在时间智能上。
 
      在此解释一下时间智能:时间智能是SSAS的一项增强功能,可以通过时间智能将时间计算(或时间视图)添加到所选层次结构中,并支持以下类别的计算:
² 到现在为止的时间段
² 随时间段增长
² 移动平均
² 并行时间段比较
当然,要实现时间智能,必须先按SSAS向导或与向导相同方式定义好层次。
 
      时间维度粒度选取时的考虑
      时间维度粒度的大小往往由业务及报表的需求决定,一般粒度,如到天的情况下,建一个日期维度足以应对日常需求。但对于粒度要求较为苛刻的场合,比如一个报表需要统计到每分钟乃至10秒作为最小的时间粒度,此时更需要重点考虑的就是处理时间维度的效率了。
 
      那么时间维度表(注:对其它常规维度也适用)在多大的时候会比较危险呢?在数据仓库中,数据量过大,将导致数据的加载和查询都会面临很大的问题。根据Kimbal的经验,当维度表中的记录数达到百万或千万时,维度的处理会变得比较危险,此时若处理不当,数据仓库的性能就会出现问题。
 
      比如粒度到分钟的时间维度,如果只使用一张表记录,那么一年的记录数将是52万余条,几十年的数据累计将达到上千万条的时间记录。此时显然需要考虑将时间维度划分为两张物理表。
 
      时间维度常用的设计模式
      服务器时间维度:在SSAS中,通过服务器维度向导定义一个虚拟的时间维度,该维度可以按照维度模板自动生成层次结构架构,如图2所示。最后的时间维度属性及层次如图3所示。
图2:通过服务器维度向导定义一个虚拟的时间维度
 
图3:时间维度属性及层次
 
      当然,简单也有简单的代价,那就是日常很多具体针对时间的需求可能在这个向导里无法实现。比如节假日的标识。
 
自定义时间维度:通过自定义编写T-SQL脚本可以实现日常几乎所有的需求,按对时间粒度要求的不同又分为两种:
◇  粒度到天的日期时间维度:日期时间维度的实现结果基本如图1所示。列表1给出一种比较通用的日期维度T-SQL脚本。
 
列表1
/*假定当前数据库为TEMPA,创建Dim_Date表,表示时间维度,并插入时间段-1-1到-12-31内的所有表列*/
以下是代码:
IF EXISTS(_select_ * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Dim_Date]')AND type in(N'U'))
Drop table [dbo].[Dim_Date]
GO
CREATE TABLE [dbo].[Dim_Date](
    [TimeKey] [int] NOT NULL,
    [TheDate] [datetime] NULL, --DateTime格式的日期
    [TheDateName] [nvarchar](10)NULL, --日期名称
    [TheYear] [smallint] NULL,--年份
    [TheYearName] [nvarchar](10)NULL,--年份名称
    [TheMonth] [smallint] NULL,--月份
    [TheMonthName] [nvarchar](10)NULL,--月份名称
    [TheDay] [smallint] NULL,--日
    [TheDayName] [nvarchar](10)NULL,--日的名称
    [TheQuarter] [smallint] NULL,--季度
    [TheQuarterName] [nvarchar](10)NULL,--季度名称
    [TheWeek] [smallint] NULL,--星期
    [TheWeekName] [nvarchar](10)NULL,--星期名称  
    [Vacation_Mark] [smallint] NULL--节假日标志
)ON [PRIMARY]
DECLARE
@TheDate datetime,
@TheDateName nvarchar(10),                    
@TheYear smallint,    
@TheYearName nvarchar(10),
@TheMonth smallint,
@TheMonthName nvarchar(10),
@TheDay smallint,
@TheDayName nvarchar(10),
@TheQuarter smallint,
@TheQuarterName nvarchar(10),
@TheWeek smallint,                    
@TheWeekName nvarchar(10),
@Vacation_Mark smallint,
 
@dDate DATETIME,--存储起始日期和结束日期
@adddays smallint--存储日期增量
_select @adddays = 1 --日期增量
_select @dDate = '1/1/2000'--当前日期
WHILE @dDate <= '12/31/2010'--结束日期
BEGIN
    set timeKey = cast((left(convert(nvarchar,thedate,23),4)+substring(convert(nvarchar,thedate,23),6,2)+
substring(convert(nvarchar,thedate,23),9,2))as int)
    _select @TheDate = @dDate
    _select @TheDateName = REPLACE(CONVERT(nvarchar(20),@dDate,111),'/','-')
    _select @TheYear = DATENAME(yy, @dDate)
    _select @TheYearName = CAST(@TheYear as nvarchar)+'年'
    _select @TheMonth = DATENAME(mm, @dDate)
    _select @TheMonthName =CAST(@TheMonth as nvarchar)+'月'
    _select @TheDay = DATENAME(dd, @dDate)
    _select @TheDayName = CAST(@TheDay as nvarchar)+'日'
    _select @TheQuarter = DATENAME(Quarter, @dDate)
    _select @TheQuarterName = '第' + CAST(DATENAME(Quarter, @dDate)as varchar(1))+'季度'
    _select @TheWeek = DATEPART(dw, @dDate)
    _select @TheWeekName = DATENAME(dw,@dDate)
    _select @Vacation_Mark = CASE WHEN(@TheWeek = 1 OR @TheWeek = 7)THEN 1 ELSE 0 END
    _insert INTO Dim_Date(TheDate,TheDateName,TheYear,TheYearName,TheMonth,TheMonthName,TheDay,
                        TheDayName,TheQuarter,TheQuarterName,TheWeek,TheWeekName,Vacation_Mark)VALUES
  (@TheDate, @TheDateName,@TheYear,@TheYearName,@TheMonth,@TheMonthName,@TheDay,@TheDayName,@TheQuarter,
    @TheQuarterName,@TheWeek,@TheWeekName,@Vacation_Mark)
   _select @dDate = @dDate + @adddays
END
GO
 
 
      这种情形下,一般采用事实表与维度表通过日期主键关联。
◇粒度到小时以下的日期维度与时刻维度的结合体:日期维度同上,时间维度的T-SQL脚本如列表2所示。

列表2
/*在Tempa库中创建Dim_Time表*/
以下是代码:
 
USE Tempa
IF EXISTS(_select_ * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Dim_Time]')AND type in(N'U'))
Drop table [dbo].[dim_Time]
CREATE TABLE [dbo].[Dim_Time](
    [TimeKey]  int IDENTITY(1,1)NOT NULL,
    [TheHour]  smallint NULL, --小时
    [TheHourName] nvarchar(5)NULL,--小时名称
    [HalfHour] smallint NULL, --半小时
    [HalfHourName] nvarchar(10)NULL, --半小时名称
    [Min] smallint NULL, --分钟
    [minName] nvarchar(10)NULL --分钟名称
)ON [PRIMARY]
DECLARE
@dHour smallint,
@addhours smallint,
@chour nvarchar(5),
@dhhour smallint,
@hhourname nvarchar(10),
@dMin smallint,
@dMinName nvarchar(10)
_select @dHour = 0       --起始小时
_select @dhhour = 1      --起始半小时
_select @dmin = 0        --起始分钟
WHILE  @dHour <= 23
BEGIN
   WHILE @dmin <=59
         BEGIN
          _select @dhhour =
        CASE
        WHEN @dMin >=0  and @dMin <=29  THEN 1
        WHEN @dMin >=30 and @dMin <=59  THEN 2 END
          _select @hhourname =
        CASE
        WHEN @dhhour =1  THEN '前半小时'
        WHEN @dhhour =2  THEN '后半小时' END
        _select @dMinName = cast(@dhour as nvarchar)+':'+(case when len(@dmin)=1 then('0'+cast(@dmin as nvarchar))                                                         else cast(@dmin as nvarchar)end)
         _select @chour = cast(@dhour as nvarchar)+ ':00'
_insert INTO Dim_Time(TheHour,TheHourName,HalfHour,HalfHourName,Min,MinName)VALUES
       (@dHour,@chour,@dhhour,@hhourname,@dMin,@dMinName)
        _select @dMin = @dMin + 1
        END
_select @dmin = 0
_select @dHour = @dHour + 1
END
GO
 
      时间维度常用的架构模式
      时间维度通常通过时间主键与事实表中的时间外键关联形成星形架构。常用的架构方式如图4所示,其中Dim_Date是日期维度,Dim_Time是时刻维度,并假定事实表是一个网络日志Fact_log,报表需求为分析时间粒度到每分钟的网络活动。
 
图4:常用的架构方式
 
      时间维度的维护
      良好的设计总是能够使系统具有更好的可持续性和稳定性,尽可能的避免额外的维护压力。时间维度也是如此。所以,要想使得时间维度尽量少的去手工维护,一个较好的办法是设置时间维度表中的时间数据随实际时间自动增长。比如,设置一个时间段,当未来的最大日期比当前日期小于这个时间段时,系统自动插入一个定长的时间段,使得新的时间维度表能够持续满足系统需求。列表3所示的T-SQL脚本是基于上面的时间维度表编写的一个可扩充时间段的示例。
 
列表3
以下是代码:
DECLARE
@TheDate datetime,
@TheDateName nvarchar(10),                    
@TheYear smallint,    
@TheYearName nvarchar(10),
@TheMonth smallint,
@TheMonthName nvarchar(10),
@TheDay smallint,
@TheDayName nvarchar(10),
@TheQuarter smallint,
@TheQuarterName nvarchar(10),
@TheWeek smallint,                    
@TheWeekName nvarchar(10),
@Vacation_Mark smallint,
 
@dDate DATETIME,--存储起始日期和结束日期
@adddays smallint--存储日期增量
_select @adddays = 1 --日期增量
_select @dDate = max(TheDate)from Dim_Date –取当前系统时间维度表最大日期
WHILE @dDate <= dateAdd(year,5,getDate())--结束日期:当前日期往后顺延5年,可以根据实际需求设置时长
BEGIN
    set timeKey = cast((left(convert(nvarchar,thedate,23),4)+substring(convert(nvarchar,thedate,23),6,2)+
substring(convert(nvarchar,thedate,23),9,2))as int)
    _select @TheDate = @dDate
    _select @TheDateName = REPLACE(CONVERT(nvarchar(20),@dDate,111),'/','-')
    _select @TheYear = DATENAME(yy, @dDate)
    _select @TheYearName = CAST(@TheYear as nvarchar)+'年'
    _select @TheMonth = DATENAME(mm, @dDate)
    _select @TheMonthName =CAST(@TheMonth as nvarchar)+'月'
    _select @TheDay = DATENAME(dd, @dDate)
    _select @TheDayName = CAST(@TheDay as nvarchar)+'日'
    _select @TheQuarter = DATENAME(Quarter, @dDate)
    _select @TheQuarterName = '第' + CAST(DATENAME(Quarter, @dDate)as varchar(1))+'季度'
    _select @TheWeek = DATEPART(dw, @dDate)
    _select @TheWeekName = DATENAME(dw,@dDate)
    _select @Vacation_Mark = CASE WHEN(@TheWeek = 1 OR @TheWeek = 7)THEN 1 ELSE 0 END
    _insert INTO Dim_Date(TheDate,TheDateName,TheYear,TheYearName,TheMonth,TheMonthName,TheDay,
                        TheDayName,TheQuarter,TheQuarterName,TheWeek,TheWeekName,Vacation_Mark)VALUES
  (@TheDate, @TheDateName,@TheYear,@TheYearName,@TheMonth,@TheMonthName,@TheDay,@TheDayName,@TheQuarter,
    @TheQuarterName,@TheWeek,@TheWeekName,@Vacation_Mark)
   _select @dDate = @dDate + @adddays
END
GO
      总结
      时间维度的设计基于业务需求,从而确定是使用服务器时间维度还是物理表的时间维度。若采用物理表形式的时间维度,还要考虑时间粒度,到天以下的较细粒度一般需要建两张时间维度表:日期维度和时刻维度。时间维度与常规维度并无本质的区别,所以不一定要在SSAS中选择时间维度特有的设计方式。设计日期维度可以使用日期代理键,也可以直接使用日期作为主键,推荐使用代理键(时刻维度同此)。通过自定义设计时间维度能够满足更广泛的业务需求。时间维度在OLAP中一般采用星形架构。
数据分析:图表OLAP分析-钻取分析 帆软数据可视化图表钻取目录是一种维度之间自上而下的组织形式,对维度之间的重新组合有重要作用。任务1种争对商品类别,商品名称两个字创建了“商品类别,商品名称”钻取目录,通过该钻取目录,可以自下钻取查看每个产品的销售明细数据,也可以从细节数据向上钻取到各项目汇总数据。可见,钻取可以改变帆软数据可视化图表维度的层次,变换帆软finebi分析的粒度,具有极大的分析灵活性。 阅读详情

相关推荐

OLAP数据可视化工具选型实战:开源BI、商业BI与自研路线全解析

在数据分析链路中,OLAP(联机分析处理)引擎负责对海量多维数据进行高速聚合计算,但算出的结果若无法直观呈现,就难以转化为业务决策价值。数据可视化作为连接OLAP与业务用户的“最后一公里”,通过报表、Dashboard、大屏等形式将复杂结果转化为可读图表。面对开源BI(如Superset、Metabase)、商业BI(如Tableau、Power BI、帆软)以及专业大屏工具(如Grafana、DataV)等庞杂选项,如何根据团队规模、数据源类型、权限要求与预算进行科学选型,成为数据工程师与分析师的普遍痛点

weixin_33827731的博客 300

olap分析平台的设计与实现(二十)- 维度管理开发杂记

动态构建mdx: ​ /** * 对外提供取得多维查询语句的接口 * @return 多维查询语句 */ private String getMdxString(FormShadow formShadow,int[] pageLayout){ formShadow.getNoDetailMap().clear(); formShadow.getShareMemberMap().clear(); //CCube cube=formShadow.getCube(); //S

wh_xia_jun的专栏 635

数据立方体入门:多维分析建模与OLAP实战指南

数据立方体是一种面向分析的多维数据结构,核心在于将隐式业务维度显性化、结构化,实现维度与度量的分离建模。其原理基于星型/雪花模式构建事实表与维度表,并通过预聚合支持快速上卷、下钻、切片等OLAP操作,显著降低即席查询延迟。技术价值体现在 bridging the gap(弥合业务问题与SQL实现之间的语义鸿沟),提升自助分析效率与数据一致性。典型应用场景包括BI报表开发、运营多维归因、财务穿透分析及实时监控看板。本文聚焦数据立方体的本质理解、建模规范、度量设计陷阱与主流技术选型(如ClickHouse、St

weixin_30752699的博客 547

基于OLAP的时间维度设计

<br />时间维度在OLAP中是一个使用的很频繁的概念,通常要根据实际需求进行定义和架构,使其不仅能够满足现有基于时间分析的需求,还具有良好的可扩展性和可持续性。本文主要以SQL Server 2005为平台较为全面地介绍了时间维度的常见设计方法,并对其在OLAP中的架构方式进行了简单的阐述。<br /> <br />时间维度简介<br />  在SQL Server 2005 Analysis Services(SSAS)中,时间维度是指那些属性表示时间段(如年、半期、季度、月和天)的维度类型。时间维度

blank1989的专栏 1626

数据立方体实战指南:多维建模、预聚合与OLAP加速

数据立方体是一种面向多维即席分析(OLAP)的高性能数据组织范式,其核心原理是通过多维建模构建维度-度量结构,并在ETL阶段完成预聚合,将复杂SQL的O(n)扫描降为O(1)内存寻址。该技术显著提升高频、固定模式的多维查询性能,广泛应用于零售销售分析、金融风控、电商实时看板等需秒级响应与动态钻取的场景。尤其适合应对嵌套JOIN深、GROUP BY字段多、时间+地理+产品多条件过滤等典型慢查瓶颈。本文聚焦真实生产环境中的多维建模实践、预聚合优化策略及OLAP加速落地要点。

weixin_33985679的博客 432

OLAP是什么?多维分析、预聚合与MOLAP/ROLAP/HOLAP选型实战

OLAP(在线分析处理)是一种面向即席、多维、交互式分析场景的数据处理范式,其核心在于维度建模、预聚合计算和多维索引优化,区别于传统OLTP数据库的行存与事务导向设计。它通过将业务抽象为事实表与维度表(如时间、产品、地区),并预先按常见组合计算SUM/COUNT等度量,实现秒级响应的下钻、切片与旋转分析。技术价值体现在打破数据分析延迟瓶颈,支撑实时经营决策;典型应用场景包括零售区域毛利分析、SaaS用户行为透视、制造业设备OEE诊断等。本文深入解析MOLAP、ROLAP与HOLAP三大架构的本质差异与落地权

cuiyingchan0663的博客 410

DimDate OLAP中Date维度表结构的建议及表数据的生成

DimDate OLAP中Date维度表结构的建议及表数据的生成

瞎掰大数据-- 世界的本质是数据,胡侃瞎掰,专注微软大数据解决方案 1663

Data Service-创建一个时间维度表.docx

Data Service-创建一个时间维度表.docx介绍如何在data service中创建一个时间维度表

[分享]微软BI专题-商业智能在ERP业务中的应用案例

 商业智能的一大重要应用是在数据量庞大而嘈杂的制造业中,可以说,制造业是非常需要商业智能的行业。因此,本期我们就将目光转向制造业,讨论一下商业智能 在ERP业务中的应用。在文中,我们以一家鞋服制造企业为例,描述其ERP相关的BI系统项目特点,让大家对制造业BI在ERP业务的应用有一个直观的印 象和清晰的理解。     商业智能的一大重要应用是在数据量庞大而嘈杂的制造业中,可以说,制造业是非常需

jackfor001的专栏 1147

数据仓库日期维度表创建存储过程

该代码是关于创建数据仓库日期维度表的存储过程

手动建立数据仓库日期维度的Excel表格

制作DW/BI项目的时候,有时候需要手动来添加一个日期的维度表,这时候可以利用这个excel来简单的完成该项任务

OLAP与数据仓库和数据湖

本文阐述了OLAP、数据仓库和数据湖方面的基础知识以及相关论文。同时记录了我如何通过ChatGPT以及类似产品(通义千问、文心一言)来学习知识的。通过这个过程让我对于用AI科技提升学习和工作效率有了实践经验和切身感受。

Ahxing1985的专栏 1330

告别外置天线!手把手教你用HFSS仿真设计一个20x40mm的433MHz PCB蛇形天线

本文详细介绍了如何使用HFSS仿真工具设计一个20x40mm的433MHz PCB蛇形天线,解决物联网设备小型化中的天线集成难题。通过对比外置天线与PCB天线的性能差异,深入解析蛇形天线的电磁学原理,并提供从建模到优化的全流程实战指南,帮助工程师实现高效、低成本的微型化天线设计。

weixin_30606461的博客 431

我的书"微软商业智能平台技巧集锦(Microsoft BI)"出版--金立钢

本集锦共142页,46个技巧,是微软商业智能平台(Microsoft BI)项目实施的必备工具之一。 序 微软商业智能平台推出已经近十年时间,从SQL Server 2000到SQL Server 2005,再到SQL Server 2008,商业智能平台的产品线逐渐完善,功能也日益强大,尤其是SharePoint的加入,进一步完善和增强了平台的功能。 随着产品的推陈出新,...

weixin_30725467的博客 88

Python自动化办公:5分钟搞定钉钉群文件自动发送(附完整代码)

本文详细介绍了如何利用Python实现钉钉群文件的自动化发送。通过结合钉钉企业内部应用与群机器人API,构建了包含智能令牌管理、文件上传与消息发送的完整工作流。文章提供了可直接复用的完整代码,并分享了定时任务、目录监听等进阶实战方案,帮助职场人士高效解决重复性文件发送难题,实现办公自动化。

7z8x2c4v6b9的博客 321

Unity实时控制佳能单反拍照全流程(附EDSDK 3.6.1配置避坑指南)

本文详细介绍了在Unity中实时控制佳能单反相机进行拍照的完整流程,重点提供了EDSDK 3.6.1的配置与避坑指南。内容涵盖从SDK获取、环境搭建、相机初始化、参数设置到实现拍照控制,并深入探讨了实时取景的延迟优化方案与资源管理,旨在帮助开发者高效集成专业相机,提升AR/VR及摄影测量等应用的视觉输入质量。

go5gopher的博客 184

多维聚合实战:从SQL GROUP BY到OLAP立方体的工程落地

多维聚合是BI与数据分析的核心能力,本质是在时间、地理、用户等正交维度构成的高维空间中实现精准切片、钻取与一致性计算。其技术原理根植于OLAP模型——通过预定义维度层次(Hierarchy)、原子化度量(Measure)和上下文感知的成员(Member),支撑动态Roll-up/Slice & Dice操作。相比传统SQL GROUP BY的扁平化降维,多维聚合提供可逆映射与跨层级数据一致性保障,显著提升T+1报表、实时大屏、自助分析等场景的响应效率与业务可信度。本文聚焦生产级落地,涵盖星型模型建模、Kyl

culuo8053的博客 447

【血汗泪心路历程】怎么彻底删掉Sangfor文件?怎么彻底删除easyconnect?删除sangfor后网络坏了、某些app无法正常启动怎么解决?

教程来源于网络的五湖四海+gpt解答。用到了好几个教程和方法,遂这篇总结一下。会标明出处!先上一下战绩:终于把sangfor扔进回收站里了!!!哈哈哈那一刻真的好爽。

weixin_71246590的博客 6万+

WideWorldImporters Power BI 仪表板实战:基于官方示例库构建历史销售分析与实时订单看板

本文围绕 Microsoft 官方示例仓库 sql-server-samples 中 [power-bi-dashboards](https://link.gitcode.com/i/f0ca54db20e7ca88afc28eb709d82803) 目录提供的两个 Power BI 仪表板(`WWIDW-Sales.pbix` 与 `WWI-SalesOrders.pbix`)展开,讲解如何将它

gitblog_02897的博客 449

微信小程序实现锚点效果 scroll-view的scroll-into-view属性

小程序中实现锚点效果,可以直接使用scroll-view的scroll-into-view属性就可以实现锚点效果,比较方便简单。那么需要用到scroll-view那些参数呢,下面具体讲讲:效果展示: wxml **注意:**viewid值是动态的,通过setData设置即可。js wxss......

FaxMiao的博客 5447

Opencv全景图像处理实战:柱面与透视展开技术详解

本文详细解析了使用OpenCV实现全景图像处理的两种核心技术:柱面展开与透视展开。通过原理拆解与实战代码演示,指导开发者将360度环绕的鱼眼或球面图像转换为可用的平面视图,适用于街景展示、车载环视、室内测量等计算机视觉应用场景。

weixin_29081163的博客 582

多维聚合实战:维度锚定、度量解耦与路径编排

多维聚合是OLAP分析的核心能力,本质是将数据从二维表格升维至时间、地域、产品等多维坐标空间,实现动态钻取、切片与跨层级计算。其技术关键在于突破传统SQL的GROUP BY局限,通过维度建模保障层级完整性,利用代理键(Surrogate Key)消除名称歧义,并以原子度量为基础支撑可追溯、可组合的指标体系。在金融风控、电商归因和IoT时序分析等高频场景中,维度锚定与聚合路径编排直接决定报表性能、口径一致性和业务响应速度。本文聚焦可落地的三维操纵法,覆盖从星型模型设计到ClickHouse+Cube.js实操

weixin_30835649的博客 469

Nifi SNI 问题解决方案

Nifi 在配置 SSL 时,如果没有正确设置主机名(SNI),就会导致。为了解决这个问题,我们需要重新配置 Nifi 的 SSL 证书,并确保所有相关配置项(如服务器地址、证书路径和密码等)正确无误。以下是一个详细的解决步骤,以帮助你正确配置 Nifi 并解决 SNI 错误。文件中的配置项(如服务器地址、端口和证书路径),以及正确设置用户凭证。通过这些配置,你可以确保 Nifi 在支持 HTTPS 的同时,正确处理 SSL/TLS 的 SNI 问题。文件,配置服务器地址、端口以及证书路径和密码。

m0_58786911的博客 2295

一步一步学习sqlserver BI--数据仓库设计

因为项目还没有真正开始,但是接触BI已有半年多,手痒,这几天准备 搞一个简化版本的BI项目。一方面给刚BI入门的朋友一个参考,另外一 方面也为自己的将要开始的项目做个准备,让自己能够考虑到一些项目 的细节。同时也希望对BI有研究的朋友提供一些建议和经验。 因为我们的这个案例是采用微软的sqlserver2005的BI平台开发的,所以 这里先贴一张WebCast里面截来的图,这张图主要反映了采用 s...

weixin_33890526的博客 198

《PLECS仿真与实战:从建模到高端应用》-专栏文件目录

《PLECS仿真与实战:从建模到高端应用》是一本系统介绍PLECS电力电子仿真软件的实用指南。全书共10章,首先介绍软件安装与基础操作,包括RC电路仿真等入门内容;随后深入讲解各类电力电子电路的建模与仿真,涵盖整流、交交变换、直流变换、逆变等电路;最后探讨PWM控制建模和直流调速系统等高端应用。书中配有丰富的示例程序和波形分析方法,附录还包含电力电子器件、代码生成等实用资料。该书适合电力电子领域工程师和学生系统学习电路仿真技术。

540

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

深入体验了4大知名BI分析工具,终于找到了最适合我们公司的一款

四款软件都具备了BI软件应该有的轻量,功能方面的差距不是非常大,都可以去体验一下。如果非要给出一个结论的话,在不考虑数据安全和服务的情况下,可以选择Tableau和Power BI,前者更适合纯业务部门使用。老李是比较支持国产软件的,如果大家倾向选择国产软件的话,建议选择Fine BI,也不是功能比永洪BI好多少,就从技术服务、案例丰富度以及社区交流方面来说,整体体验感会好些。不过,软件合不合适还得看企业情况,我这边只是给大家提用一些信息。

Leo的博客 5633

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: [分享]微软BI专题-BI系统中财务领域的几个问题
下一篇: [分享]微软BI专题-MDX功能初探
jackfor001
博客等级 码龄22年 41粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值