Informatica旗下PowerCenter的元数据库解析
因客户需求,最近重拾Informatica下的PowerCenter产品,主要研究数据血缘关系。从PowerCenter本身来看,它是一个功能非常强大,速率非常高效的一款付费的ETL工具,可以满足各种需求,包括对接各种数据源(SAP也可以)、各种应用组件(table、java、file、html)、人性化的监控器、以及各种任务界面等等。同时基于客户端本身,PowerCenter还有自身的存储库,存储Informatica所有的元数据信息,我们在使用PowerCenter进行快捷etl开发时,这些存储库也能满足我们万变的需求。
首先上干货:需求是通过PowerCenter展示数据的血缘关系。在Mapping中有对应的源表和目标表,可以形成有效的简单的血缘关系,当然在EXPRESS中有详细的sql,在此暂不解读这个sql的血缘关系。
解决:通过对PowerCenter元数据数据表之间关联,可以拿到Folder下面所有Mapping里面的源和目标信息,关联表即可显示对应的数据流向。
具体SQL如下:
1 SELECT
2 t.SUBJ_ID,
3 t.SUBJ_NAME,--文件名
4 t.SUBJ_DESC,
5 t1.MAPPING_ID,
6 t1.MAPPING_NAME, --映射名
7 t3.SRC_ID,
8 t3.SOURCE_NAME, --源表名
9 t4.TARGET_ID,
10 t4.TARGET_NAME --目标表名
11 FROM OPB_SUBJECT t
12 LEFT JOIN OPB_MAPPING t1 ON t.SUBJ_ID = t1.SUBJECT_ID
13 LEFT JOIN OPB_DBDS t2 ON t1.MAPPING_ID = t2.MAPPING_ID
14 LEFT JOIN OPB_SRC t3 ON t2.DBD_ID = t3.DBDID
15 LEFT JOIN (
16 SELECT
17 DISTINCT
18 t.MAPPING_ID,
19 t.MAPPING_NAME,
20 t3.TARGET_ID,
21 t3.TARGET_NAME
22 FROM OPB_MAPPING t
23 LEFT JOIN OPB_TDS t1 ON t.MAPPING_ID = t1.MAPPING_ID
24 LEFT JOIN OPB_WIDGET_INST t2 ON t1.MAPPING_ID = t2.MAPPING_ID AND t1.TARGET_INSTANCE_ID = t2.INSTANCE_ID
25 LEFT JOIN OPB_TARG t3 ON t2.WIDGET_ID = t3.TARGET_ID
26 WHERE t.IS_VISIBLE = 1 AND t2.WIDGET_TYPE = 2 AND t3.IS_VISIBLE = 1
27 ) t4 ON t1.MAPPING_ID = t4.MAPPING_ID
28 WHERE t1.IS_VISIBLE = 1 AND t3.IS_VISIBLE = 1
29 AND t.SUBJ_NAME = 'DW' AND t1.MAPPING_ID = '452' --具体条件,可注释
结果如下:
解决上述需求,顺便把PowerCenter元数据库里大部分常见的,且非常有用的表及视图介绍一下。基于这些东西,我们即可以根据不同的需求查出自己需要的数据,也可以开发一些辅助的Infa应用程序。
OPB_ATTR:
INFORMATICA(Designer,Workflow等)设计时及服务器设置的所有属性项的名称,当前值及
该属性项的简要说明
例如:ATTR_NAME:Tracing Level
ATTR_VALUE:2
ATTR_COMMENT:Amount of detail in the session log
用途:可以通过该表快速查看到设计或设置时碰到的一些属性项的用途与说明
OPB_ATTR_CATEGORY:
INFORMATICA各属性项的分类及说明
例如:CATEGORY_NAME:Files and Directories
DESCRIPTION:Attributes related to file names and directory locations
用途:查看上表所提的属性项的几种分类及说明
OPB_CFG_ATTR:
WORKFLOW MANAGER中的各个Folder下的Session Configuration的配置数据,每个配置对应表中一组Config_Id相同的数据,一组配置数据共23条
例如:ATTR_ID:221
ATTR_VALUE:$PMBadFileDir
用途:查看所有的SessionConfiguration的配置项及值,并方便的进行各个不同Folder间的配置异同比较
OPB_CNX:
WORKFLOW MANAGER中关于源、目标数据库连接的定义,包括Relational Connection,Queue Connection,Loader Connection等
例如:OBJECT_NAME:Orace_Source
USER_NAME:oral
USER_PASSWORD:` 53S{$+*$*[X]
CONNECT_STRING:Oratest
用途:查看在WorkFlow Manager中进行配置的所有连接及其配置数据
OPB_CNX_ATTR:
上表所记录的所有数据库连接的一些相关属性值,一种属性值一条数据。例如对于Relational Connection类的连接,有附加三个属性,对应该表则有三条记录,分别记录其Rollback Segment, Environment SQL, Enable Parallel Mode的属性值,分别对应ATTR_ID为10,11,12
例如:OBJECT_ID:22
ATTR_ID:10
ATTR_VALUE:1(代表Enable Parallel Mode为选中)
VERSION_NUMBER:1
用途:查看所有配置好的连接的相关属性值,及一些环境SQL及回滚段设置,方便统一查看及比较
OPB_DBD:
INFORMATICA DESIGNER中所有导入的源的属性及位置
例如:DBSID:37
DBDNAM:DSS_VIEW
ROOTID:37
用途:关联查看所有源的属性
OPB_DBDS:
INFORMATICA MAPPING中所引用的源,即Mapping与上表中源的对应关系
例如: MAPPING_ID:3
DBD_ID:4
VERSION_NUMBER:1
用途:查看一个定义了的源被哪些Mapping引用过,作为他的源或给出Mapping名,根据OPB_MAPPING表关联,可以查看该Mapping引用到哪些源
OPB_EXPRESSION:
INFORMATICA DESIGNER 中所有定义了的表达式
例如:WIDGET_ID:1003
EXPRESSION:DECODE(IIF(TYPE_PLAN != '05',1,0),1,QTY_GROSS,0)
用途:通过与OPB_WIDGET表关联,查看整个元数据库中的所有Expression转换模块中的表达式定义
OPB_EXTN_ATTR:
WORKFLOW MANAGER中的 Edit Tasks时的Mapping页中,选中Targets时,其相关属性的设置值。每个属性值一条记录。
例如:ATTR_ID:2
ATTR_VALUE:ora_test1.bad
用途:通过关联直接查看所有Session的相关目标表数据加载设置
OPB_FILE_DESC:
INFORMATICA中所有文本文件的读入规则定义,如分隔符等
例如:STR_DELIMITER:11,
FLD_DELIMITER:9,44,0
CODE_PAGE:936
用途:查看系统中不同的文本的规则定义Informatica的元数据包括了我们在开发与配置时所碰到的所有数据,当然理论上我们可以通过直接修改数据库值来更改设置,但列出这些表的用途,仅是给大家一个查看信息的简便方法,即使对元数据库很熟了,也强烈建议不要直接修改元数据表的值,而应该通过Informatica工具来进行更改。
OPB_GROUPS:
INFORMATICA中所有组的定义
例如:GROUP_ID:2
GROUP_NAME:Administrators
用途:查看当前系统中所设置的所有组
Informatica的元数据包括了我们在开发与配置时所碰到的所有数据,当然理论上我们可以通过直接修改数据库值来更改设置,但列出这些表的用途,仅是给大家一个查看信息的简便方法,即使对元数据库很熟了,也强烈建议不要直接修改元数据表的值,而应该通过Informatica工具来进行更改。
OPB_MAPPING:
INFORMATICA中所有Mapping的存储,并存储着Mapping的一些如最后一次存储时间、说明等属性信息例如:MAPPING_NAME:m_PM_COUNT_BILL
MAPPING_ID:1521
LAST_SAVED:03/27/2006 20:00:24
用途:这张表的用途非常大,可以通过本表数据的查询,得出如某个时间以后修改过的所有Mapping,所有失效了的Mapping,这个表的更大作用是和其他表作关联,得出更多Mapping相关的信息
OPB_MAP_PARMVAR:
INFORMATICA中Mapping的所有参数的定义,及其初始值等相关信息
例如:MAPPING_ID:1538
PV_NAME:$$DP_ENABLE_RAND_SAMPLING
PV_DEFAULT:0
用途:查看系统作所设置的所有参数信息,与OPB_MAPPING关联可以根据所给出的Mapping名查看该Mapping下所设置的所有参数信息
OPB_METAEXT_VAL:
IINFORMATICA元数据扩展信息,记录了在设计中,所扩展的所有元数据相关信息
以下是某个Session的元数据扩展
例如:METAEXT_NAME:COMMENT
OBJECT_TYPE:68(Session)
PM_VALUE:The Link's Main Table,Design by Jack
用途:查看在设计中所有扩展了的元数据信息,通过关联可以查看指定对象的元数据扩展信息,帮助集中查看了解设计过程中的一些信息
OPB_OBJECT_TYPE:
INFORMATICA设计中所有对象的定义表
例如:OBJECT_TYPE_ID:1
OBJECT_TYPE_NAME:Source Definition
用途:可以查看到现在INFOMATICA所定义了的所有对象,可作为其他表的关联维表,查看某个对象的所有相关信息
OPB_PARTITION_DEF:
SESSION中所有的PARTITION定义
例如:SESSION_ID:2578
PARTITION_NAME:Partition #1
用途:通过关联,根据Session的名称,查出该Session所包含的所有Partition设置
OPB_REPOSIT:
INFORMATICA REP服务器配置相关信息
例如: DATAVERSION: 5002
PEPOSIT_NAME:hnsever
用途:查看INFORMATICA REP服务器配置信息
OPB_REPOSIT_INFO:
INFORMATICA REP数据库连接配置信息
例如: REPOSITORY_NAME: TEST-REP
DB_USER:infa_user
DB_NATIVE_CONNECT:infa_conn
HOSTNAME:hnsever
PORTNUM:5001
用途:查看INFORMATICA REP服务器数据库连接配置信息
OPB_SCHEDULER:
WORKFLOW中的所有SCHEDULER设置信息表
例如:SCHEDULER_ID:81
SCHEDULER_NAME:Scheduler_DAY_10
START_TIME:3/13/2005/00/20
用途:该表记录了所有的SCHEDULER信息,以及它的各项属性设置,方便整体进行考虑各个SCHEDULER间的调度配合
OPB_SERVER_INFO:
INFORMATICA SEVER 服务器配置信息
例如:SERVER_NAME:INFA_SEVER
TIMEOUT:300
HOSTNAME:hnsever
PORT_NO:4001
IP_ADDRESS:196.125.13.1
用途:查看INFORMATICA SEVER服务器配置信息
OPB_SESSION:
WORKFLOW中的所有Session,记录了Session与Mapping的对应关系及Session相关的一
些基本属性
例如:SESSION_ID:11
MAPPING_ID:3
用途:查看Session与Mapping对应关系,通过关联得出Session名与Mapping名的对应
OPB_SESSION_CONFIG:
记录了WORKFLOW中所有Session的Config配置信息
例如:CONFIG_NAME:default_session_config
COMMENTS:Default session configuration object
用途:查看当前系统中所有配置了的Session Config信息
OPB_SESS_FILE_REF:
INFORMATICA抽取过程中的所有Flat File与Session的相关关系定义
例如: SESSION_ID: 682
FILE_ID:66
用途:查看整个系统中的Flat File源的相关情况
OPB_SESS_FILE_VALS:
系统中所有Flat File文件的具体情况,包括文件名、路径等
例如: SESSION_ID: 1560
FILE_NAME: PTM_LU_CHILD.txt
DIR_NAME: $PMSourceFileDirPTM
用途:通过关联可以查看到Session相关的Flat文件名及其路径,以及查看系统所有相关Flat文件及统计
OPB_SESS_TASK_LOG:
这是INFORMATICA对于Session运行的所有日志的信息记录,并且记录下Session的出错情况。
例如:INSTANCE_ID:6
MAPPING_NAME:m_ASSET_SUB_ACCOUNT
LOG_FILE:C:Program Files......s_ASSET_SUB_ACCOUNT.log
FIRST_ERROR_MSG:No errors encountered.
用途:这是在查Session运行情况的最终要的表之一,可以最简便的得到Session是否运行正常及当初错时的首个错误简要信息,以及日志文件的位置
OPB_SRC:
INFORMATICA DESIGNER中所定义的所有源
例如:SRC_ID:12
SUBJ_ID:27
FILE_NAME:AM_EQP_ASSESS
SOURCE_NAME:AM_EQP_ASSESS
用途:通过Subj_Id的关联,可以查出每个Folder中所有定义了的源,一般和OPB_DBDS通过DBD_ID关联得到源详细信息
OPB_SRC_FLD:
INFORMATICA中源表的所有字段的定义
例如:FLDID:82
SRC_ID:12
SRC_NAME:FLAG_ID
用途:关联上表,得出该源表的所有字段,及其定义和相关属性值
OPB_SRV_LOC_VARS:
INFORMATICA系统服务器配置中,所有的系统变量及变量的当前值
例如:VAR_ID:13
VAR_NAME:$PMRootDir
VAR_VALUE:D:Program FilesInformatica PowerCenter 7.1.1Server
用途:查看当前服务器的所有系统变量及其当前值
OPB_SUBJECT:
INFORMATICA中所有主题定义,即所有Folder的定义及相关属性
例如:SUBJ_NAME:OAM
SUBJ_ID:2
GROUP_ID:3
用途:Folder的ID是其他很多表的外键,作为其他表的关联,可以查看该Folder下的所有相关对象信息
OPB_SWIDGET_INST:
记录一个Session中所用到的Mapping引用到的所有对象及其相关属性,即细到每个转化模块一条记录
例如:SESSION_ID:11
MAPPING_ID:3
INSTANCE_NAME:LKP_OTHER_CHECK11
PARTITION_TYPE:1
用途:查看每个Session所引用到的所有对象,及其当前的属性值
OPB_SWIDGINST_LOG:
INFORMATICA运行后,所有运行了的Session中相关源及目标对象的运行日志,即运行的时间,抽取的数据成功条数等
例如:TASK_INSTANCE_ID:92
PARTITION_ID:1
PARTITION_NAME:Partition#1
WIDGET_NAME:SQ_SHIFT_CODE
APPLIED_ROWS:723
START_TIME:2004-11-4 8:48:12
END_TIME:2004-11-4 8:48:31
用途:这是INFORMATICA运行后,对每个对象的运行情况的最详细的日志记录,对于数据正确性的检查,性能的调优等有着很重要的参考价值
OPB_SWIDG_GROUP:
在INFORMATICA DESIGNER中Union_Transformation模块上的所有Group的定义表
例如:SESSION_ID:1410
GROUP_NAME:PM_GROUP1
用途:该表单独记录了Union_Transformation模块上所有设置了的Group,可以通过关联查出一个Session上所有的Union Group定义
OPB_TABLE_GROUP:
在INFORMATICA DESIGNER 中Router Transformation模块上的所有Group的定义表.
例如:OBJECT_ID:3409
ATTR_VALUE: FROM_ID = 'xx'
用途:该表单独记录了Router Transformation模块上所有设置了的Group,以及Group的分组条件,可以通过关联查处出一个Mapping中Route r
的所有分组设置及其分组条件
OPB_TARG:
在INFORMATICA DESIGNER中所有目标表的定义,
例如:TARGET_ID:3
SUBJ_ID:2
TARGET_NAME:HAM_DEPT
用途:该表存储了所有的目标表定义,通过关联可以查出某个Folder下所有的目标表定义
一般和OPB_TDS、OPB_WIDEGT_INST通过INSTANCE_ID关联得到目标表信息,详细可参考开头sql信息
OPB_TABLE_GROUP:
在INFORMATICA DESIGNER中Router Transformation模块上的所有Group的定义表.
例如:OBJECT_ID:3409
ATTR_VALUE: FROM_ID='xx'
用途:该表单独记录了RouterTransformation模块上所有设置了的Group,以及Group的分组条件,可以通过关联查处出一个Mapping中Router的所有分组设置及其分组条件
OPB_TARGINDEX:
在INFORMATICA中对目标表,可进行Index的定义,该表存储了所有目标表Index的定义
例如:TARGET_ID:1626
INDEXNAME: IDX_AUDIT
用途:查出所有在INFORMATICA中进行的Index定义,及相关目标表信息
OPB_TARGINDEXFLD:
INFORMATICA中目标表上进行了Index定义的相关的所有字段
例如:INDEXID:6
FLDNAME: AREC_BILL_ID
用途:进行关联查出在INFORMATICA中进行了Index定义的表及其字段
OPB_TARG_FLD:
INFORMATICA中所有目标表的字段信息
例如:TARGET_ID:131
TARGET_NAME:CHECK_PROPERTY
用途:查看目标表的所有字段信息,或给出字段名,查找该字段在那些目标表中出现过
OPB_TASK:
WORKFLOW中所有Task的记录,包括Session,Worklet,WorkFlow等
例如:TASK_ID:1717
TASK_NAME:s_OAM_LOG_ARR
用途:该表是Workflow关于Task的记录的主表,通过关联可以查出某个folder下所包含的所有Workflow、Worklet、Task等,以及查出一个Workflow下的所有Task
OPB_TASK_ATTR:
该表记录了Task的所有属性值,每个属性一条记录
例如:ATTR_ID:2
ATTR_VALUE:s_AM_ASSET_TYPE.log
用途:查看相关Task的属性设置,查找系统中同一属性设置的所有Task
OPB_TASK_INST:
Task实例表,与OPB_TASK表信息类似,但该表主要突出的是Workflow与Task的关系,而OPB_TASK表是Task的基表
例如:WORKFLOW_ID:9
INSTANCE_NAME: s_USED_KIND
用途:查找一个Workflow下的所有Task信息
OPB_TASK_INST_RUN:
该表记录了所有Task每次运行的日志信息,包括当前的运行起始时间,服务名等
例如:INSTANCE_NAME:s_ASSET_ACCOUNT
START_TIME:2004-11-3 15:20:01
END_TIME:2004-11-3 15:20:08
SERVER_NAME:ETL-SVR
用途:该表记录了Task每次运行的日志信息,其中关于时间的信息对于性能调优有着极其重要的作用,也可以观察同一个Task,一段时间的运行效果,评估服务器的运行情况等
OPB_TASK_VAL_LIST:
该表记录了某些Task中的属性值,例如Command Task中的Command值
例如:TASK_ID:2990
PM_VALUE:DEL “D:FILE_LIST.TXT”
VAL_NAME:DELETE
用途:可以查看当前系统中设置的任务属性值,也可查看所有的Command的命令值
OPB_USERS:
该表记录了Rep Manager中所设置的所有用户,及其相关属性
例如:USER_ID:5
USER_NAME:DEMO
USER_PASSWD:hG63"4$7.`
USER_PRIVILEGES1:79
用途:可以查看系统中INFORMATICA所定义了的所有用户及相关属性
OPB_USER_GROUPS:
该表记录了Rep Manager中用户与组的关系
例如:USER_ID:2
GROUP_ID:3
用途:查看一个组中存在哪些用户,或关联出每个用户到底属于哪个组
OPB_VALIDATE:
该表纪录Designer或Workflow Manager中设计开发时,所有Validate的信息
例如:OBJECT_ID:4
INV_COMMENTS:Replaced source [V_RCT_CREDIT] during import.
用途:查看同一个对象的历史Validate信息,查看对象的修改历程
OPB_VERSION_PROPS:
该表纪录了系统中各种对象的当前版本信息,最后的修改时间。包括最小到各个Mapping中的各个模块的当前版本信息。
OPB_VALIDATE:
该表纪录Designer或Workflow Manager中设计开发时,所有Validate的信息
例如:OBJECT_ID:4
INV_COMMENTS:Replaced source [V_RCT_CREDIT] during import.
用途:查看同一个对象的历史Validate信息,查看对象的修改历程
OPB_VERSION_PROPS:
该表纪录了系统中各种对象的当前版本信息,最后的修改时间。包括最小到各个Mapping中的各个模块的当前版本信息。
例如:OBJECT_ID: 5
OBJECT_NAME: FLT_CLM_BDL
LAST_SAVED: 08/20/2006 22:52:29
用途:查看系统中各模块对象的最后更改时间。
OPB_WFLOW_VAR:
该表纪录了Workflow的中,各个系统变量的定义,是Workflow设计过程中,所有各模块间系统变量的设计纪录
例如:SUBJECT_ID:2
VAR_NAME:ErrorMsg
VAR_DESC:Error message for this task's execution
LAST_SAVED: 08/20/2006 22:38:41
用途:查看Workflow中相应的系统变量的设计
OPB_WIDGET:
该表是所有Mapping中的所有转换模块的基础信息表,记录了每个转换模块的基础信息
例如:WIDGET_NAME:AGG_PIM_RES
WIDGET_TYPE:9
IS_REUSABLE:0
用途:可以与其他表进行关联,按条件查出需要各个基础的转换模块
OPB_WIDGET_ATTR:
该表是OPB_WIDGET的子表,记录了每一个转换模块的各种属性值。一个模块的一个属性占一条记录。
例如:WIDGET_ID: 2
WIDGET_TYPE:11
ATTR_VALUE:$PMCacheDir
用途:该表纪录了所有的转换模块的所有属性值,是在做某属性查找时非常有用的一个基础表,通过与其他表的关联即可得出同一设置的所有转换模块的信息
OPB_WIDGET_FIELD:
该表纪录了各个转换模块中所有字段的定义
例如:WIDGET_ID:4
FIELD_NAME:IN_PL_CD
WGT_PREC:10
WGT_DATATYPE:12
用途:可以实现对某个字段名称的统计与查找
OPB_WORKFLOW:
该表是Workflow定义的一个基表,记录下Workflow的关系信息
例如:WORKFLOW_ID:6
SERVER_ID:0
SCHEDULER_ID:3
用途:该表主要可以用于作关于Workflow的各种相关查找的关联表
REP_DB_TYPES:
该表记录了INFA所支持的数据库的类型
例如:DATYPE_NUM:3
DATYPE_NAME:ORACLE
用途:该表是系统的一个基础代码表,用于显示INFA所支持的所有数据库类型
REP_FLD_DATATYPE:
该表记录了INFA所支持的各种数据类型以及INFA所支持的各种数据库的数据类型
例如:DTYPE_NUM:3001
DTYPE_NAME:char
DTYPE_DATABASE:ORACLE
用途:该表是系统的一个基础代码表,用于显示INFA所支持的所有数据类型
REP_SRC_KEY_TYPES:
该表记录了INFA在源定义中所设定的所有键值类型
例如:KEYTYPE_NUM:1
KEYTYPE_NAME:PRIMARY KEY
用途:该表是系统的一个基础代码表,用于显示INFA源设计中,所有支持的键值类型
REP_TARG_KEY_TYPES:
该表记录了INFA在目标定义中所设定的所有键值类型
例如:KEYTYPE_NUM:2
KEYTYPE_NAME:FOREIGN KEY
用途:该表是系统的一个基础代码表,用于显示INFA目标设计中,所有支持的键值类型
REP_TARG_TYPE:
该表记录了INFA的目标表类型
例如:TARGET_TYPE:1
TYPE_NAME:DIMENSION
用途:表是系统的一个基础代码表,用于显示INFA设计中,所有支持的目标表类型
除以上这些常用的表外,还有一些常用的视图信息:
REP_ALL_MAPPINGS:
该视图记录了所有Mapping映射信息
REP_ALL_SCHEDULERS:
该视图记录了所有SCHEDULERS调度信息
REP_ALL_SOURCES:
该视图记录了所有SOURCES源表信息
REP_ALL_SOURCE_FLDS:
该视图记录了所有SOURCES源表字段信息
REP_ALL_TARGETS:
该视图记录了所有TARGETS目标表信息
REP_ALL_TARGET_FLDS:
该视图记录了所有TARGETS目标表字段信息
REP_TBL_MAPPING:
该视图记录了所有Mapping里面详细信息,包括源和目标,以及转换等等。
当然,各种表组合有不一样的风采,期待更多实用信息,特此记录。
Informatica旗下PowerCenter的元数据库解析的更多相关文章
- Informatica元数据库解析
Informatica所有的元数据信息均以数据库表的方式存到了元数据库中.当然Infa本身工具提供了很多的人性化的功能,使我们在开发时可以很方便的进行操作,但人们的需求总是万变的,需要方便的取到自己需 ...
- ora-26002:Informatica的Powercenter跑ETL时,出现ora-26002错误解决办法
在使用Informatica进行ETL导数的时候,出现下面的错误: WRT_8229 Database errors occurred: ORA-26002: Table REPORT.TB_JK_0 ...
- 采用ETL with RDBMS模式来实现ETL
目前Teradata数据仓库的ETL作业采用ELT方式, 因为loading太重了, 需要将ETL压力转移到专门的ETL Server上. 对于ETL工具, 市场上已有很成熟的商业/开源工具, 比如I ...
- 【PHP】PHP从入门到精通(一)——想学习PHP的小伙伴的福利来了!
PHP从精通到入门 (一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言.语法吸 ...
- PHP基础入门(一)---世界上最好用的编程语言
作为一名程序员,我们应该都听过这样一个梗:PHP编程语言,是世界上最好用的编程语言~~~下面来和大家看一下,什么是PHP↓↓↓ PHP PHP又名超文本预处理器,是一种通用开源脚本语言.PHP主要适用 ...
- 基于两种架构的ETL实现及ETL工具选型策略
企业信息化建设过程中,业务系统各自为政.相互独立造成的"数据孤岛"现象尤为普遍,业务不集成.流程不互通.数据不共享--.这给企业进行数据的分析利用.报表开发等带来了巨大困难.在此情 ...
- PHP基础入门详解(一)【世界上最好用的编程语言】
简介 --------- PHP(超文本预处器)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域.PHP 独特的语法混合了C.Ja ...
- 【PHP】最详细PHP从入门到精通(一)——想学习PHP的朋友们福利来了!
PHP从入门到精通 (一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java ...
- PHP从入门到精通(一)
(一)PHP简介和基本知识 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于 ...
随机推荐
- 第一篇:实时网络日志分析器和交互式查看器--GoAccess安装
介绍 GoAccess是一个开源的实时网络日志分析器和交互式查看器,可以在* nix 系统或通过浏览器的终端中运行. 它为需要动态可视化服务器报告的系统管理员提供快速且有价值的HTTP统计信息. 特征 ...
- RealEvo-IDE安装
双击"InstallWizard.exe"启动安装程序 点击"Install RealEvo-IDE"启动 RealEvo-IDE 安装程序 选择"下 ...
- dd-文件系统内容映射
复制文件并对原文件的内容进行转换和格式化处理. 语法 dd [OPTIONS]... 选项 if=filename 指定源文件. of=filename 指定目的文件. ibs=bytes 指定一个块 ...
- Fail2ban 配置详解 过滤器配置
Fail2ban自带了很多相关服务日志的过滤器. ### # 包含配置 ### [INCLUDES] before = common.conf # 还包含其他文件中的配置,在加载本配置文件中配置之前先 ...
- 《Effective C++》阅读总结(三):资源管理
C++中的资源管理非常重要,在将资源加载到内存后,便可以使用资源了,当我们不再需要资源时,我们要保证其正确的释放,才能将其占用的内存空间归还给操作系统,不正确的释放很容易造成内存泄漏.本章以资源管理类 ...
- Python Django 功能模块
Python Django模块 Django模块,是针对有django基础,对django功能进行模块化,方便下次使用. 一.注册模块 该注册采用邮箱验证,注册成功后会发送激活链接到邮箱. 邮箱验证参 ...
- python爬虫之JS逆向某易云音乐
Python爬虫之JS逆向采集某易云音乐网站 在获取音乐的详情信息时,遇到请求参数全为加密的情况,现解解决方案整理如下: JS逆向有两种思路: 一种是整理出js文件在Python中直接使用execjs ...
- # 【由浅入深_打牢基础】WEB缓存投毒(上)
image-20220611092344882 [由浅入深_打牢基础]WEB缓存投毒(上) 1. 什么是WEB缓存投毒 简单的来说,就是利用缓存将有害的HTTP响应提供给用户 什么是缓存,这里借用Bu ...
- ruoyi接口权限校验
此文章属于ruoyi项目实战系列 ruoyi系统在前端主要通过权限字符包含与否来动态显示目录和按钮.为了防止通过http请求绕过权限限制,后端接口也需要进行相关权限设计. @PreAuthorize使 ...
- 获取请求体数据 POST
POST获取请求体 请求体中封装了 POST请求的请求参数 获取流对象 再从流对象中那数据 一种字节流 一种字符流 BufferedReader getReader()获取字符输入流 只能操作字符 S ...