Линия данных в SQL Server
Задача:
Давайте подумаем о крупномасштабном предприятии, где у нас есть разнородные хранилища данных, такие как SQL-серверы, хранилища No-SQL, большие хранилища данных, такие как ADL, ADF... и т. Д., Распределенные по различным бизнес-группам.
Нашей целью является создание службы происхождения на уровне предприятия, которая предоставит представление о происхождении данных между различными экземплярами хранилища данных внутри предприятия. Это поможет нам получить представление о распространении данных внутри предприятия.
Для этого, в качестве фазы 1, мы хотим взять SQL-сервер и построить линию внутри и между SQL-серверами и базами данных.
Есть ли способ, которым мы можем построить / извлечь (если доступно) линию данных (уровень таблицы и столбца) с сервера SQL, используя профилирование SQL или журналы транзакций внутри или между экземплярами.
Я посмотрел на Определение воздействия и происхождение данных и похоже, что на сервере SQL должны быть включены службы зависимостей.
Как служба уровня предприятия, я могу иметь доступ к серверам SQL и не иметь возможности управлять экземплярами сервера SQL при включении каких-либо служб.
Может ли кто-нибудь поделиться своими идеями или опытом в отношении создания или извлечения Data Lineage внутри или между серверами SQL.
Заранее спасибо!
Mydeen
1 ответ
Вы можете экспортировать структуру базы данных в файл SQL, который включает CREATE TABLE/CREATE VIEW/ CREATE PROCEDURE и другие операторы SQL. Затем используйте анализатор SQL для анализа этих сценариев, чтобы получить метаданные из этих сценариев SQL и построить линию данных таблицы / столбцов.
Возьмите этот SQL, например:
create view deptsal (dept_no, dept_name, salary)
as
SELECT d.deptno,
d.dname,
SUM(e.sal + Nvl(e.comm, 0)) AS sal
FROM dept d
left join (SELECT *
FROM emp
WHERE hiredate > DATE '1980-01-01') e
ON e.deptno = d.deptno
GROUP BY d.deptno,
d.dname;
Вы получите поток данных как: deptsal.salary зависит от emp.sal, emp.com