关于最佳实践:MaxCompute-物化视图智能推荐最佳实践

什么是物化视图MaxCompute物化视图是一种事后计算和存储后果数据的数据对象,也能够称之为“实体化视图”。物化视图能够作为一张虚构表存在于MaxCompute我的项目中,它的内容是一个或多个表的聚合,过滤以及Join组合计算结果。物化视图能够大幅度缩小查询处理工夫以及节俭作业计算资源,基于MaxCompute优化器弱小的主动查问改写能力,当作业能够复用物化视图后果时,优化器主动把一些简单的操作替换成读取物化视图操作,从而晋升作业执行速度、节俭作业计算资源。 什么是物化视图智能举荐物化视图的应用,岂但须要对物化视图的工作原理比拟理解,同时须要理解业务数据行为与业务数据的应用场景,给普通用户应用物化视图带来肯定艰难。 MaxCompute 物化视图智能举荐实现了用户无感知的流程化应用物化视图能力。用户开启物化视图智能举荐后,MaxCompute 能够为用户主动剖析业务数据应用场景,主动举荐物化视图,并且能够可视化展示物化视图的应用成果。为物化视图应用大大降低了门槛,同时也带来更多的物化视图应用场景。 物化视图智能举荐的特点简略易用,用户不须要理解物化视图各个底层工作细节,只需抉择本人的Project开启主动智能剖析。智能,MaxCompute主动对用户历史作业进行剖析,自动识别周期性作业,并智能提取作业汇合中的公共计算逻辑作为物化视图计算逻辑,并最终转换成用户敌对的SQL文本模式,依照举荐水平排序展现给用户。便于管理,MaxCompute控制台提供一站式的性能开明、物化视图治理以及物化视图应用成果展现。物化视图智能举荐的应用场景数据治理随着企业业务倒退,公司的业务数据会越来越多,各部门对数据都存在各种数据分析需要,在日常应用过程中,各个部门对数据的应用会存在肯定的穿插应用,难免会有大量的雷同逻辑的反复计算。 日常用户或者大数据平台管理人员很难发现反复计算,因为反复计算局部可能只是整个计算逻辑中一部分。在发现有反复计算时想批改也比拟艰难,如果从新形象一个反复计算的表,上游的依赖作业都须要更改,而后测试上线。会带来额定的工作量,从而导致数据治理很难推动。 应用物化视图智能举荐性能后,MaxCompute会主动剖析Project中存在哪些公共的计算逻辑,并且举荐进去,让用户去创立物化视图,有了物化视图后,通过弱小的优化器改写能力,可能让作业主动利用上物化视图的计算结果,不须要用户批改原来的逻辑。 示例,在没有物化视图,如下图,Tab4跟Tab5的计算中存在棱形跟圆形局部逻辑是反复计算的,在下图中计算了两遍。 创立物化视图MV1后,菱形跟圆形局部逻辑只计算了一遍,能够节俭计算资源的同时进步计算速度。 智能数据建模传统大数据处理,第一步就是既懂技术又懂业务的数据分析专家搭建数据仓库,对数据仓库进行分层,失常模型都分贴源层,明细层,汇总层,应用层等;传统建模形式有以下弊病: 1)模型建的好坏,间接影响到计算的有效性,重大依赖建模的专家; 2)同时随着业务倒退,数据越来越多后,不免有模型建的不是很适合的状况,如果再改模型对整个现有工作都有影响; 3)资源节约,局部模型建好后,然而应用的人很少或者没有应用,导致整个模型白白浪费计算资源和存储资源。 有了物化视图智能举荐后,用户不须要依赖专家来事后建模。能够做到智能的自动化建模。当用户应用数据后,后端主动剖析,剖析出反复计算逻辑,MaxCompute主动举荐创立物化视图,实现真正的灵便,快捷的自动化建模。让用户不必放心数据存储状况,计算资源应用效率等问题;用户能够把更多精力放在业务倒退上。特地对中小型公司来说,不须要额定要招聘数据建模同学,全副交给MaxCompute物化视图智能举荐即可。 数据报表/看板物化视图智能举荐也能够为用户的BI智能报表/看板提供减速能力。MaxCompute会为用户主动剖析反复刷新的数据,举荐创立物化视图,有了物化视图后能够事后计算好报表/看板须要的数据,在报表/看板须要用的时候间接会主动改写路由去查物化视图,能够大大降低报表/看板的响应工夫。 如何应用物化视图智能举荐物化视图智能举荐应用非常简单,只需以下几个步骤: 1.登录MaxCompute控制台,点击右边菜单“物化视图”; 2.抉择Tab页“设置”,开启智能剖析,并且增加须要剖析的项目名称; 3.T+1天后,查看Tab页“物化视图举荐”,查看零碎依据用户应用行为,举荐进去的公共子查问; 4.抉择对应的子查问创立物化视图; 5.T+1天后,查看Tab页“物化视图治理”,能够看到目前哪些查问计算调用了该物化视图以及调用物化视图前后成果比照。 物化视图智能举荐示例 阿里团体数据中台团队负责建设整个阿里的数仓“公共层”,试图将反复计算的逻辑进行收敛,让多个上游业务拜访同一个后果表,从而达到节俭计算和存储的目标。随着数据量和业务复杂度的几何增长,传统的“公共层”曾经很难达到本来构想的状态,次要起因有: 找数难逻辑存在相似性然而后果表不齐全可用人工发现公共逻辑难度大MaxCompute推出的物化视图智能举荐性能,恰好能很好的解决上述问题。数据中台团队通过将MaxCompute智能举荐后果转变为物化视图,大大降低了上游作业之间的反复计算,节俭了大量计算资源。 一期物化视图智能举荐性能笼罩了4个BU共20个project,命中物化视图的作业,其均匀计算资源节俭率为14%。后续咱们会有更加具体的理论应用案例来开展介绍。 物化视图智能举荐应用阐明物化视图并不能解决所有问题,在绝大部分状况下,总体上看都是能够为用户带来正向收益,包含能够缩小计算资源,进步计算速度,并升高计算成本。然而针对某个查问计算,在小概率下会给用户带来负收益,用户须要关注以下几点: 1.公共子查问被物化成物化视图后的数据是否产生数据收缩,如果产生几倍或者更高的收缩时,不倡议应用物化视图。 2.应用后付费的用户,须要留神目前物化视图节俭的是计算资源和计算复杂度,但并不一定会缩小数据扫描量,因为在数据物化过程中如果产生数据收缩后,可能扫描量会减少。 作者 夏俊伟 阿里云高级产品专家 / 郑君正 阿里云高级技术专家 原文链接 本文为阿里云原创内容,未经容许不得转载。

May 24, 2023 · 1 min · jiezi

关于最佳实践:8款最佳实践保护你的-IaC-安全

基础设施即代码(IaC) 是一种疾速倒退的技术,利用软件开发准则和实际,用软件配置基础设施。与传统的 IT 基础架构相比,IaC 能够更高效地交付软件。自动化还解锁了弹性配置的能力,该性能可在不同的负载下无效地分配资源。 只管 IaC 有很多劣势,但配置不当的 IaC 也会在整个零碎中迅速流传谬误配置。IaC 的自动化配置可能提高效率,也能够放大谬误,而这些谬误通常会对平安产生不利影响。保持 IaC 最佳实际是升高胜利供应链网络攻击和破绽危险的无效办法,思考以下8个 IaC 最佳实际,为企业平安保驾护航。 扫描 IaC 代码,排查谬误配置IaC 是一个功能强大的工具,但同时也存在肯定平安危险,例如在整个云基础设施中流传小的配置谬误。谬误配置可能的模式有:不平安的默认配置,可公开拜访的 S3 buckets 或未加密的数据库。 SAST 和 SCA 扫描是特色代码的最佳形式,然而很少有企业优先思考用此类形式爱护 IaC。对 IaC 代码进行平安扫描能够无效缩小因为配置谬误导致的裸露和破绽。此外,能够通过扫描新的 commit 以查找对云部署的更改,来检测和更正与其原始模板匹配的根底构造。 将自动化 IaC 平安扫描嵌入开发工作流程在破绽进入生产环境之前发现并修复比后置的补救伎俩更无效。因而通过将对 IaC 谬误配置的查看嵌入到开发人员工作流中,开发人员可能提前发现并纠正问题。能够采纳pre-commit的模式,以便在开发人员保留其工作时测试代码,也能够应用拉取申请主动执行的分支爱护规定,或者作为在CI中运行的平安构建规定。在开发人员的工作流中运行平安扫描还能够确保开发人员及时取得精确信息,并修复谬误配置,进步修复效率。 辨认并纠正环境偏移环境偏移检测(不同部署环境的配置与其模板不同步的状况)和修复谬误配置是 IaC 的最佳实际之一。配置中的偏差通常产生在保护期间,并可能导致环境(如测试和生产)变动。随着工夫的推移,这会导致配置偏离平安状态。 环境偏移可能是由大意的谬误引起的,而由此造成的问题修复难度高并且可能导致业务宕机,造成巨大损失。通过将 IaC 与理论生产配置进行比拟来辨认偏移,但手动实现此操作既繁琐又耗时。因而,偏移检测是 IaC 平安扫描工具的不错抉择。 避免硬编码密钥渗透到 IaC 中IaC 最宽泛认可的最佳实际之一是防止部署蕴含凭证的代码。硬编码密钥能够在特色代码或 IaC 代码中被引入,而进入 IaC 代码的密钥有可能对组织的安全性造成毁灭性的影响。硬编码密钥的存在也使得因为明码破解而导致相干帐户泄露,让歹意攻击者无隙可乘。因而如果硬编码密钥保留在程序中,会导致身份验证措施失败,因为任何有权拜访我的项目的人都能够查看这些硬编码密钥。与扫描 IaC 平安配置谬误十分类似,初始评估应在主分支和版本历史记录中的 IaC 代码中查找硬编码密钥。最好的办法是通过扫描 commit 来避免这些硬编码密钥进入版本控制系统。 缩小代码透露的工夫和影响无心泄露源代码可能导致知识产权偷盗、硬编码密钥的裸露等等。源代码和 IaC 代码通常位于同一存储库中,裸露 IaC 代码的危险泛滥,其中包含攻击者通过解析代码找到对应的破绽、配置谬误和破解密钥的危险。 建设协定以防止代码透露,同时制订应急打算,以防产生透露。应考察潜在的可疑用户流动,例如应用 IaC 下载、克隆或分叉存储库。强制施行最小特权策略有助于缩小代码透露危险。此外执行定期检查,避免源代码持续公布到公共存储库或代码共享站点,并确保疾速解决任何源代码透露。公开专有 IaC 代码的工夫越长,歹意攻击者就越有可能借此进行发动攻打。因而,设置警报机制,可能尽可能升高代码透露产生的危险。 ...

July 22, 2022 · 1 min · jiezi

关于最佳实践:Oracle-11204最佳实践参数

11.2.0.4序号 参数名称 参数值 参数形容1 _awr_mmon_deep_purge_all_expired FALSE Allows deep purge to purge AWR data for all expired snapshots2 _cursor_obsolete_threshold 200 _cursor_obsolete_threshold3 _index_partition_large_extents FALSE Enables large extent allocation for partitioned indices4 _optimizer_adaptive_cursor_sharing FALSE _optimizer_adaptive_cursor_sharing5 _optimizer_cartesian_enabled FALSE _optimizer_cartesian_enabled6 _optimizer_extended_cursor_sharing NONE _optimizer_extended_cursor_sharing7 _optimizer_extended_cursor_sharing_rel NONE _optimizer_extended_cursor_sharing_rel8 _optimizer_use_feedback FALSE _optimizer_use_feedback9 _partition_large_extents FALSE Enables large extent allocation for partitioned tables10 archive_lag_target 600 Maximum number of seconds of redos the standby could lose11 audit_trail os enable system auditing12 control_file_record_keep_time 31 control file record keep time in days13 db_block_checking MEDIUM header checking and data and index block checking14 db_block_checksum FULL store checksum in db blocks and check during reads15 db_cache_advice OFF Buffer cache sizing advisory16 db_files 2000 max allowable # db files17 db_lost_write_protect TYPICAL enable lost write detection18 deferred_segment_creation FALSE defer segment creation to first insert19 enable_ddl_logging TRUE enable ddl logging21 filesystemio_options setall IO operations on filesystem files22 job_queue_processes 100 maximum number of job queue slave processes23 max_shared_servers 0 max number of shared servers24 open_cursors 1000 max # cursors per session25 pga_aggregate_target 0.2 * #OSMEMORY# Target size for the aggregate PGA memory consumed by the instance26 processes 1000 user processes27 recyclebin OFF recyclebin processing28 remote_login_passwordfile EXCLUSIVE password file usage parameter29 resource_limit TRUE master switch for resource limit30 resource_manager_plan 'force:' resource mgr top plan31 result_cache_max_size 0 maximum amount of memory to be used by the cache32 sec_max_failed_login_attempts 100 maximum number of failed login attempts on a connection33 session_cached_cursors 200 number of session cursors to cache34 sga_max_size 0.5 * #OSMEMORY# max total SGA size35 sga_target 0.5 * #OSMEMORY# Target size of SGA36 shared_servers 0 number of shared servers to start up37 standby_file_management AUTO if auto then files are created/dropped automatically on standby38 undo_retention 10800 undo retention in seconds39 _memory_imm_mode_without_autosga FALSE Allow immediate mode without sga/memory target40 _use_adaptive_log_file_sync FALSE Adaptively switch between post/wait and polling41 _gc_undo_affinity FALSE if TRUE, enable dynamic undo affinity42 _gc_policy_time 0 how often to make object policy decisions in minutes43 _px_use_large_pool TRUE Use Large Pool as source of PX buffers44 _clusterwide_global_transactions FALSE enable/disable clusterwide global transactions45 parallel_force_local TRUE force single instance execution46 _undo_autotune FALSE enable auto tuning of undo_retention47 _datafile_write_errors_crash_instance FALSE datafile write errors crash instance48 _keep_remote_column_size TRUE remote column size does not get modified49 _shared_pool_reserved_pct 20 percentage memory of the shared pool allocated for the reserved area50 db_cache_size 0.34 * #OSMEMORY# Size of DEFAULT buffer pool for standard block size buffers51 shared_pool_size 0.07* #OSMEMORY# Target size of shared_pool_size (kb)52 java_pool_size 131072 Target size of java_pool_size (kb)53 large_pool_size 524288 Target size of large_pool_size (kb)54 streams_pool_size 524288 Target size of streams_pool_size (kb)55 _cleanup_rollback_entries 20000 no. of undo entries to apply per transaction cleanup56 _rollback_segment_count 2000 number of undo segments20 event '10949 trace name context forever:28401 trace name context forever, level 1:10849 trace name context forever, level 1:19823 trace name context forever, level 90' debug event control - default null string

July 17, 2022 · 3 min · jiezi