Метаданные oracle что это

Обновлено: 04.07.2024

Oracle Data Integration, Cloud, Spatial and Analytics (GoldenGate, ODI, Cloud, Spatial, Exadata)

Обзор

В последнее время необходимость управления метаданными становится очевидной задачей во все большем количестве крупных компаний. Почти все компоненты современных информационных технологий (CASE средства, ETL, хранилища данных, BI, EAI содержат метаданные. Эти метаданные распределены, часто дублируют друг друга, меняются со временем, зависят от используемой методологии и технологий, в которых они используются.

Особенно остро проблема управления метаданными встает в компаниях, использующих инструменты от разных вендоров. В этом случае отсутствует единое представление движения данных в компании. Что влечет за собой дублирование данных (разные команды не знаю об уже существующих в хранилище данных), сложность определения источника некачественных данных (причиной ошибки в отчете может быть как ошибка в BI, так и в ETL) и, как следствие, общее недоверие бизнес-пользователей к аналитике.

Oracle Enterprise Metadata Management (OMM) обеспечивает следующие возможности по управлению метаданными:

  • Аннотирование и комментирование метаданных
  • Сравнение, интеграцию и маппинг метаданных
  • Версионирование и управление конфигурацией
  • Управление жизненным циклом метаданных
  • Lineage и impact analysis

image

В сердце Oracle Enterprise Metadata Management (OMM) лежит его репозиторий, который содержит такие объекты как Модели и Маппинги, сгруппированные по папкам. Модели могут извлекаться из хранилищ данных (Data Warehouse), инструментов моделирования данных (Data Modeling), инструментов интеграции данных (Data Integration) и инструментов бизнес анализа (Business Intelligence). Специальный тип объекта репозитория, называемый Конфигурацией, может “сшивать” Модели и Маппинги для того, чтобы представить единую корпоративную архитектуру (Enteprise Architecture). Это позволяет анализировать корпоративную инфраструктуру, выполнять анализ lineage и impact analysis, а также работать с semantic lineage definitions.

Семейство решений Oracle Metadata Management (OMM) включает в себя 2 продукта:

  • Oracle Metadata Management for Oracle Business Intelligence (OMM4OBI)
  • Oracle Enterprise Metadata Management (OEMM)

Эти продукты отличаются в двух измерениях: список источников метаданных и функции, доступные для этих источников.

  • RDBMS:
    • Oracle
    • IBM DB2
    • MSSQL
    • Netezza
    • PostgreSQL
    • Teradata
    • Greenplum.
    • Oracle Data Integrator (11g, 12c)
    • Oracle BI (10g, 11g)
    • Oracle Business Intelligence Applications (OBIA 10g and OBIA 11g)
    • Metadata Harvesting
    • Metadata Configuration and Stitching
    • Metadata Browsing, Search and Reporting
    • Metadata Collaboration (external URL, tagging, comments and review)
    • Data Flow Lineage & Impact Analysis
    • Metadata Explorer (simplified metadata user interface for business users)

    Все то, что есть в OMM4OBI плюс

    • RDBMS
      • Hive (Cloudera, Datastax, Hortonworks и MapR)
      • Файлы данных (XML с XSD)
      • Oracle Data Modeler
      • CA ERwin
      • Embarcadero ER/Studio
      • IBM InfoSphere Data Architect
      • SAP (Sybase) PowerDesigner
      • IBM DataStage
      • Informatica PowerCenter
      • Microsoft SSIS
      • IBM Cognos
      • Microsoft SSAS, Reporting Services
      • Microstrategy
      • SAP BO
      • Tableau.

      Все то, что есть в OMM4OBI плюс

      • Metadata Harvesting from multi-vendor technologies
      • Metadata Version and Configuration Management (change management)
      • Data Model Diagram Visualizer and Navigator
      • Business Glossary for Data Governance
      • Semantic Lineage & Impact Analysis
      • Semantic Mapping Editor
      • Data Flow Mapping Specifications Editor

      Инсталляция

      Требования

      • 2 GHZ или более быстрый четырехядерный CPU
      • 4 GB RAM (8 GB если у вас 64-битная OS с 64-битным сервером приложений).
      • 10 GB свободного пространства на диске (в основном место используется сервером баз данных)
      • Windows – эта конфигурация работает лучше всего, потому что OEMM сильно зависит от Windows COM API, с помощью которого он получает доступ к многим репозиториям
      • Linux, Solaris, other Unix (требует ручной инсталляции)
      • Apache Tomcat (комплекте)
      • IBM WebSphere (требует ручной инсталляции)

      Инсталляция OEMM

      image

      В появившемся списке выбриаем Oracle Fusion Middleware 12c Media Pack. Скачиваем Oracle Enterprise Metadata Management 12.1.3.0.0.

      После закачки и распаковки получаем файл OMM-win32-800-20140930.exe. Это инсталляционный файл, содержащий в том числе и документацию. Инсталляция не представляет никаких сложностей. Основной вопросы в рамках этой инсталляции:

      – это в каком режиме мы будем инсталлировать OEMM – OMM4OBI или OEMM.

      image

      image

      image

      Далее переходим к конфигурированию OEMM.

      Конфигурирование

      Запуск сервиса OEMM

      1. Конфигурируем OEMM как сервис. Для этого запускаем

      Пуск->Все программы->Oracle Metadata Management->Configure Server as Service

      2. Запускаем сервис Oracle Metadata Management Service

      Конфигурация базы данных Oracle

      Я буду показывать на пример Oracle, но в C:\Program Files (x86)\Oracle\Metadata Management\Documentation\ReadMe\README.HTML есть настройки и для MSSQL.

      Настройка OEMM для использования базы данных

      image

      После нажатия кнопки Save начнется загрузка данных в базу.

      image

      Все – система установлена и мы можем входить. Имя пользователя и пароль – Administrator.

      image

      Заключение

      В последующих статьях я планирую написать побольше про использование OEMM для сбора информации о метаданных из различных источников. Удачного использования.

      Oracle Database предоставляет информацию обо всех таблицах , представлениях , столбцах и процедурах в базе данных. Эта информация об информации известна как метаданные . Он хранится в двух местах: в таблицах словаря данных (доступ к которым осуществляется через встроенные представления) и в реестре метаданных.

      Содержание

      Представления для метаданных

      Общее количество этих представлений зависит от версии Oracle, но находится в диапазоне 1000.

      Основных встроенных представлений для доступа к таблицам словаря данных Oracle RDBMS немного, и они следующие:

      • ALL_OBJECTS - список всех объектов в текущей базе данных, доступных текущему пользователю;
      • ALL_TABLES - список всех таблиц в текущей базе данных, доступных текущему пользователю;
      • ALL_VIEWS - список всех представлений в текущей базе данных, доступных текущему пользователю;
      • ALL_TAB_COLUMNS - список всех столбцов в базе данных, доступных текущему пользователю;
      • ALL_ARGUMENTS - перечисляет аргументы функций и процедур, доступные текущему пользователю;
      • ALL_ERRORS - перечисляет описания ошибок для всех хранимых объектов (представлений, процедур, функций, пакетов и тел пакетов), доступных текущему пользователю;
      • ALL_OBJECT_SIZE - включен для обратной совместимости с Oracle версии 5;
      • ALL_PROCEDURES - (начиная с Oracle 9 и далее) перечисляет все функции и процедуры (вместе со связанными свойствами), которые доступны текущему пользователю;
      • ALL_SOURCE - описывает текстовый (т.е. PL / SQL) источник хранимых объектов, доступный текущему пользователю;
      • ALL_TRIGGERS - список всех триггеров, доступных текущему пользователю.

      Кроме того, существуют эквивалентные представления с префиксом «USER_», которые показывают только объекты, принадлежащие текущему пользователю (т. Е. Более ограниченное представление метаданных), и с префиксом «DBA_», которые показывают все объекты в базе данных (т. Е. Неограниченное глобальное представление метаданных для экземпляр базы данных). Естественно, для доступа к представлениям метаданных "DBA_" требуются определенные привилегии.

      Пример 1: поиск таблиц

      Найдите все таблицы, в имени которых есть ШАБЛОН

      Пример 2: поиск столбцов

      Найдите все таблицы, в которых есть хотя бы один столбец, который соответствует определенному ШАБЛОНУ в имени столбца

      Пример 3: подсчет строк столбцов

      Оцените общее количество строк во всех таблицах, содержащих имя столбца, соответствующее ШАБЛОНУ (это специальный сценарий SQL * Plus )

      Обратите внимание, что NUM_ROWS записывает количество строк, которые были в таблице, когда (и если) она последний раз анализировалась. Это, скорее всего, будет отличаться от фактического количества строк в таблице в данный момент.

      Пример 4: поиск столбцов представления

      Найти столбцы просмотра

      Предупреждение: это неполно в отношении нескольких типов данных, включая char, varchar и timestamp, и использует очень старые, устаревшие представления словаря, вплоть до oracle 5.

      Использование подчеркивания в именах таблиц и столбцов

      Подчеркивание - это специальный шаблон SQL , соответствующий одному символу, и его следует экранировать, если вы действительно ищете символ подчеркивания в предложении LIKE запроса.

      Просто добавьте следующее после оператора LIKE:

      И затем каждое буквальное подчеркивание должно быть двойным подчеркиванием: __

      Реестр метаданных Oracle

      Продукт Oracle Oracle Enterprise Metadata Manager (EMM) - это реестр метаданных, совместимый с ISO / IEC 11179 . Он хранит администрируемые метаданные в согласованном формате, который можно использовать для публикации метаданных . В январе 2006 года EMM было доступно только через консалтинговые услуги Oracle.

      Все выражения в SQL делятся на две основные категории:

      • DDL - data definition language - язык определения данных;
      • DML - data manipulation language - язык манипулирования данными.

      Язык DML необходим для изменения содержимого таблиц. Его операторы - это всем известные insert, update, delete. Для того, чтобы изменения стали видны всем пользователям базы данных, требуется выполнение оператора commit, а для возврата в предыдущее состояние (еще говорят для отката изменений) - оператора rollback.

      DDL-выражения используются для создания и модификации объектов баз данных, таких как таблицы, процедуры, индексы. DDL-выражения, их еще называют метаданными, можно получить из уже существующей схемы. Они очень полезны при оптимизации и анализе баз данных. О том, как получить метаданные из БД Oracle и будет эта статья.

      В более ранних версиях Oracle метаданные можно было получить с помощью SQL-запросов и разных утилит для экспорта. Эти способы имеют свои ограничения и недостатки. Ответом на все эти неудобства стал пакет DBMS_METADATA с набором функций для работы с метаданными. Пакет DBMS_METADATA появился в версии Oracle9i. Теперь определения данных доступны как в формате XML, так и в виде привычных нам DDL-выражений.

      Основная функция, которая нам понадобится для извлечения метаданных - это get_ddl. Вызывать ее можно как с двумя (тип объекта, имя объекта), там и с тремя (в дополнение еще и имя схемы) параметрами. Например, для получения метаданных триггера TRIGGER1 из схемы SCHEMA1 можно использовать такое выражение:

      Если пользователь работает со своей собственной схемой, третий параметр можно не указывать. Доступные типы объектов очевидны - PROCEDURE, TABLE, CONSTRAINT, INDEX, PACKAGE и так далее.

      Для получения метаданных объекта конечно же необходимо знать его имя. Список объектов текущей схемы можно получить, например, так:

      Это запросы для таблиц, колонок и индексов соответственно.

      Данные по другим объектам базы данных находятся в таких таблицах:

      • USER_VIEWS - данные по представлениям (или как еще их ласково называют - вьюхи);
      • USER_CONSTRAINTS - данные по первичным и вторичным ключам и проверкам типа not null;
      • USER_SEQUENCES - данные по последовательностям-генераторам;
      • USER_TRIGGERS - данные по триггерам;
      • USER_SOURCE - данные по PL/SQL объектам, таким как процедуры, функции, пакеты.

      Ну вот и все: метаданные у нас в руках. Используйте их для своих нужд. Удачи.

      База данных Oracle предоставляет информацию обо всех таблицах, представлениях, столбцах и процедурах в базе данных. Эта информация известна как metadata. Он хранится в двух местах: таблицы словарей данных (доступ осуществляется через встроенные представления) и реестр метаданных.

      Другие системы управления реляционными базами данных поддерживают эквивалент стандарта ANSI, называемый информационной схемой.

      Представления для метаданных

      Общее количество этих представлений зависит от версии Oracle, но находится в диапазоне 1000.

      Основные встроенные представления, к которым относятся таблицы данных RDBMS Oracle, немногочисленны и являются следующими:

      • ALL _ OBJECTS - список всех объектов в текущей базе данных, доступных текущему пользователю;
      • ALL _ TABLES - список всех таблиц в текущей базе данных, доступных текущему пользователю;
      • ALL _ VIEWS - список всех представлений в текущей базе данных, доступных текущему пользователю;
      • ALL _ TAB _ COLUMNS - список всех столбцов в базе данных, доступных текущему пользователю;
      • ALL _ ARGUMENTS - список аргументов функций и процедур, доступных текущему пользователю;
      • ALL _ ERRORS - список описаний ошибок для всех хранимых объектов (представлений, процедур, функций, пакетов и тел пакетов), доступных текущему пользователю;
      • ALL _ OBJECT _ SIZE - входит для обратной совместимости с Oracle версии 5;
      • ALL _ PROCEDURES - (начиная с Oracle 9) перечисляет все функции и процедуры (вместе со связанными свойствами), доступные текущему пользователю;
      • ALL _ SOURCE - описывает текстовый (т.е. PL/SQL) источник хранимых объектов, доступных текущему пользователю;
      • ALL _ GERS - список всех, доступных текущему пользователю.

      Кроме того, существуют эквивалентные представления prefi "USER _", которые показывают только объекты, принадлежащие текущему пользователю (т.е. более представление метаданных), и prefi "DBA _", которые показывают все объекты в базе данных (то есть неразделенное глобальное представление метаданных для экземпляра базы данных). Естественно, доступ к представлениям метаданных "DBA _" требует определенных привилегий.

      Пример 1: поиск таблиц

      Поиск всех таблиц с PATTERN в имени таблицы

      Пример 2: поиск колонн

      Поиск всех таблиц, имеющих хотя бы один столбец, соответствующий определенному ШАБЛОНУ в имени столбца

      Пример 3: подсчет гребней колонн

      общее количество строк во всех таблицах, содержащих имя столбца, которое соответствует PATTERN (это специфичный для SQL * Plus сценарий)

      < syntaxhighlight = "oracle11" > COLUMN DEY NOPRINT COMPUTE SUM OF NUM _ ROWS ON DEY BREAK ON DEY _ Y SELECT NULL DEY, T.TTTABLE _ NAME _ NAME, COLUMUMN N N N _ NAME _ TAB B TAB B B B, ГДЕ _ TABB B. Это, скорее всего, будет отличаться от фактического количества строк в настоящее время в таблице.

      Пример 4: поиск столбцов вида

      Поиск столбцов вида

      < syntaxhighlight = "oracle11" > SELECT TABLE _ NAME, column _ name, декодирование (c.DATA _ TYPE, "VARCHAR2", c.DATA _ TYPE ("c.DATA _ LENGTH");, "NUMBER", DECODE (c.data _, NULL, "тип _ данных", ", 0 _ _ _ _ _ _ _ _ _ _

      Использование недокруга в именах таблиц и столбцов

      Подзаголовок - это специальный шаблон SQL, соответствующий одному символу, и его следует исключить, если вы действительно ищете подзаголовок в клаузе LIKE запроса.

      Просто добавьте следующее после оператора LIKE:

      И тогда каждый литерал должен быть двойным андерскором: _ _

      Реестр Oracle Metadata

      Oracle продукт Oracle Enterprise Metadata Manager (EMM) является ISO/IEC 11179 совместимым регистром метаданных. Он хранит администрируемые метаданные в согласованном формате, который может использоваться для публикации метаданных. В январе 2006 года EMM была доступна только через консультационные службы Oracle.

      -- This will generate the DDL for the user and add his objects,system and role grants
      SELECT DBMS_METADATA.GET_DDL('USER',username) as script from DBA_USERS where username= :v_username
      UNION ALL
      SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT',grantee) as script from DBA_SYS_PRIVS where grantee= :v_username and rownum=1
      UNION ALL
      SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT',grantee) as script from DBA_ROLE_PRIVS where grantee= :v_username and rownum=1
      UNION ALL
      SELECT DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT',grantee) as script from DBA_TAB_PRIVS where grantee= :v_username and rownum=1;

      clear screen
      SET LONG 20000
      SET LONGCHUNKSIZE 20000
      SET PAGESIZE 0
      SET LINESIZE 1000
      SET FEEDBACK OFF
      SET VERIFY OFF
      SET TRIMSPOOL ON
      column script format a1000
      set serveroutput on

      variable v_username VARCHAR2(30);
      exec :v_username := upper('angor');

      BEGIN
      DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'SQLTERMINATOR', true);
      DBMS_METADATA.set_transform_param (DBMS_METADATA.session_transform, 'PRETTY', true);
      END;
      /

      SELECT dbms_metadata.get_ddl('USER', :v_username) as script FROM dual
      UNION ALL
      SELECT DBMS_METADATA.GET_GRANTED_DDL('SYSTEM_GRANT', :v_username) as script from dual
      UNION ALL
      SELECT DBMS_METADATA.GET_GRANTED_DDL('ROLE_GRANT', :v_username) as script from dual
      UNION ALL
      SELECT DBMS_METADATA.GET_GRANTED_DDL('OBJECT_GRANT', :v_username) as script from dual;

      set long 20000
      set longchunksize 20000
      set pagesize 25000
      set linesize 1000
      set feedback off
      set verify off
      set trimspool on
      column ddl format a1000

      begin
      dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'SQLTERMINATOR', true);
      dbms_metadata.set_transform_param (dbms_metadata.session_transform, 'PRETTY', true);
      end;
      /

      variable v_username VARCHAR2(30);
      exec :v_username := upper('angor');

      Читайте также: