Как я могу удалить раздел Fuction на SQL - PullRequest
3 голосов
/ 27 мая 2019

Итак, у меня есть и 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);

1 Ответ

1 голос
/ 27 мая 2019

Вам необходимо выполнить несколько действий, чтобы удалить функцию разделения:

  1. Удалить или переместить (т. Е. Если у вас есть куча, создайте кластерный индекс в PRIMARY) все таблицы, которые используютсхема разделения.
  2. Удаление схемы разделения.
  3. Удаление функции разделения.
...