所以我得到了ETL,它存储了3年'17(腐败),'18(腐败),'19:
STG_tables:从3个不同的数据库导入数据并将其导出到
DWH_tables:这是所有历史信息都存储在其中的关系型关系。在这里,仅对表和字段进行规范化和参数化以使其适应已开发的逻辑模型,但未应用任何业务规则。
DIM_tables:最后,在Dimensional Fase中,将应用业务规则,并针对查询优化表和索引,因为这是分析工具将攻击的地方。
我有2种重新加载类型:
每日重新加载:此作业负责执行执行数据仓库每日增量加载所需的SSIS程序包。它只会加载维度Fase中大表的最后一个分区(与当年相对应)。
完全重新加载:加载满3年(这一年无效)
这不是我做的,我有0个技术文档,所以我只是想弄清楚它是如何工作的,我的想法是,一旦我完成了全部重载,数据就会恢复。
我在STG_fase上遇到错误:
DROP TABLE DWH_PROD.DWH_XX; DROP TABLE ...':'在一个或多个分区方案中使用了分区函数'pfPetitions'。错误的可能原因:查询问题,属性“ ResultSet”设置不正确,参数设置不正确或连接建立不正确。
我不知道如何删除该分区,所以我可以再次创建它 并且找不到“ ResultSet”属性,请帮助
USE DB;
GO
DROP TABLE DWH_PROD.DWH_ALBARANES_TARIFA;
DROP TABLE DWH_PROD.DWH_PETICIONES;
DROP TABLE DWH_PROD.DWH_SOLICITUDES;
DROP TABLE DWH_PROD.DWH_RESULTADOS;
DROP TABLE DWH_PROD.DWH_INCIDENCIAS;
-------i delete code so the text is not so big------
Here there are all the creation of the drop tables above
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_ALBARANES_TARIFA')
CREATE TABLE DWH_PROD.DWH_ALBARANES_TARIFA (
);
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_INCIDENCIAS')
CREATE TABLE DWH_PROD.DWH_INCIDENCIAS (
);
IF EXISTS (SELECT * FROM sys.partition_functions WHERE name = N'pfPeticiones')
DROP PARTITION FUNCTION pfPeticiones;
CREATE PARTITION FUNCTION pfPeticiones (DATE)
AS RANGE RIGHT FOR VALUES
('2017-01-01', '2018-01-01', '2019-01-01');
IF EXISTS (SELECT * FROM sys.partition_schemes WHERE name = N'psPeticiones')
DROP PARTITION SCHEME psPeticiones;
CREATE PARTITION SCHEME psPeticiones
AS PARTITION pfPeticiones
ALL TO ([Primary]);
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_PETICIONES')
CREATE TABLE DWH_PROD.DWH_PETICIONES (
) ON psPeticiones(FEC_PETICION);
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_SOLICITUDES')
CREATE TABLE DWH_PROD.DWH_SOLICITUDES (
) ON psPeticiones(FEC_PETICION);
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_RESULTADOS')
CREATE TABLE DWH_PROD.DWH_RESULTADOS (
) ON psPeticiones(FEC_PETICION);
答案 0 :(得分:1)
您需要执行一些操作才能删除分区功能:
答案 1 :(得分:0)
使用此分区的3个表已被删除
“ 消息3701,第11级,状态5,第7行 无法删除表“ DWH_PROD.DWH_PETITIONS”,因为该表不存在或用户没有权限。 -其他2的消息
然后我将首先删除分区SCHEME仍然给我一个错误“分区方案'psPetitions'当前正用于在一个或多个表中创建分区。”
IF EXISTS (SELECT * FROM sys.partition_schemes WHERE name = N'psPeticiones')
DROP PARTITION SCHEME psPeticiones;
IF EXISTS (SELECT * FROM sys.partition_functions WHERE name = N'pfPeticiones')
DROP PARTITION FUNCTION pfPeticiones;
CREATE PARTITION FUNCTION pfPeticiones (DATE)
AS RANGE RIGHT FOR VALUES
('2017-01-01', '2018-01-01', '2019-01-01');
CREATE PARTITION SCHEME psPeticiones
AS PARTITION pfPeticiones
ALL TO ([Primary]);
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_PETICIONES')
CREATE TABLE DWH_PROD.DWH_PETICIONES (
ID_PETICION INTEGER NOT NULL IDENTITY
,COD_PETICION VARCHAR(15) NOT NULL
,FEC_PETICION DATE NOT NULL
,COD_PACIENTE INTEGER
,COD_DOCTOR VARCHAR(10)
,COD_ORIGEN VARCHAR(4)
,COD_ENTIDAD VARCHAR(4)
,COD_CLIENTE_TARIFICA INTEGER
,COD_CLIENTE_FACTURA INTEGER
,COD_EMISORA INTEGER
,COD_APROD_PETICION VARCHAR(4)
,FEC_SALIDA DATE
,FEC_ENTREGA DATE
,FEC_IMPRESION DATETIME
,FEC_ULT_IMPRESION DATETIME
,FEC_TOMA_MUESTRA DATE
,HORA_TOMA_MUESTRA VARCHAR(4)
,IND_EMITIDO CHAR(1)
,IND_FACTURADA CHAR(1)
,VAL_DESCUENTO DECIMAL(10,2)
,COD_USUARIO_ALTA_PETICION VARCHAR(10)
,FEC_ALTA_PETICION DATETIME
,IND_BORRADO CHAR(1)
,TMP_PETICIONES DATETIME
,IND_PRIVADO CHAR(1)
,NUM_FACTURA INTEGER
,FEC_FACTURA DATE
,VAL_IMPORTE_FACTURADO DECIMAL(10,2)
,PRIMARY KEY(ID_PETICION,FEC_PETICION)
) ON psPeticiones(FEC_PETICION);
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_SOLICITUDES')
CREATE TABLE DWH_PROD.DWH_SOLICITUDES (
ID_SOLICITUD INTEGER NOT NULL IDENTITY
,COD_PETICION VARCHAR(15) NOT NULL
,FEC_PETICION DATE NOT NULL
,COD_SOLICITUD VARCHAR(8) NOT NULL
,IND_URGENTE CHAR(1)
,VAL_PRECIO_SOLICITUD_TEORICO DECIMAL(10,2)
,COD_USUARIO_ALTA_SOLICITUD VARCHAR(10)
,FEC_ALTA_SOLICITUD DATETIME
,IND_BORRADO CHAR(1)
,TMP_SOLICITUDES DATETIME
,PRIMARY KEY(ID_SOLICITUD,FEC_PETICION)
) ON psPeticiones(FEC_PETICION);
IF NOT EXISTS (SELECT * FROM sys.tables WHERE name = N'DWH_RESULTADOS')
CREATE TABLE DWH_PROD.DWH_RESULTADOS (
ID_RESULTADO INTEGER NOT NULL IDENTITY
,COD_PETICION VARCHAR(15) NOT NULL
,FEC_PETICION DATE NOT NULL
,COD_SOLICITUD VARCHAR(8) NOT NULL
,COD_ANALISIS VARCHAR(8) NOT NULL
,DES_RESULTADO VARCHAR(200)
,IND_APROD_EFECTIVA CHAR(1)
,COD_APROD_EFECTIVA VARCHAR(4)
,FEC_RESULTADO DATETIME
,IND_VALIDADO CHAR(1)
,FEC_VALIDADO DATETIME
,COD_VAL_TECNICA VARCHAR(8)
,COD_VAL_FACULTATIVA VARCHAR(8)
,COD_ANALIZADOR VARCHAR(4)
,IND_BORRADO CHAR(1)
,TMP_RESULTADOS DATETIME
,IND_REPETIDA CHAR(1)
,PRIMARY KEY(ID_RESULTADO,FEC_PETICION)
) ON psPeticiones(FEC_PETICION);