Как организовать хранилище данных
Перейти к содержимому

Как организовать хранилище данных

  • автор:

Создание хранилища данных

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

Если у вас нет доступа к веб-браузеру, запустите служебную программу configuredatastore на компьютере, где установлен ArcGIS Data Store .

Рекомендации перед созданием хранилища данных

Дисковое пространство и память

Вам следует учесть объем дискового пространства и памяти, которые необходимы на компьютере, где вы создадите хранилище данных. Например, в реляционном хранилище данных могут храниться данные нескольких тысяч размещенных векторных слоев, и для этого может потребоваться несколько гигабайт дискового пространства. Хранилища данных листов кэша также могут существенно увеличиться в размерах после публикации нескольких размещенных слоев сцен.

Вам также потребуется убедиться, что на компьютерах достаточно памяти. Например, хранилища больших пространственно-временных данных занимают на компьютере примерно 40 процентов доступной памяти после первичной настройки. Реляционные хранилища данных также резервируют системную память, чтобы можно было обработать данные. При большой нагрузке на размещенные векторные слои и слои сцен будут использоваться большие объемы памяти.

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

См. системные требования ArcGIS Data Store для получения информации о минимальных требованиях к дисковому пространству, которое необходимо для создания каждого типа хранилища данных, и затем добавьте его к размеру данных, которые вы хотите хранить в каждом из них.

Хост-сервер

  • Удалить управляемую базу данных и добавить ее снова, как зарегистрированную базу данных. В этом случае ваши существующие размещенные векторные слои будут продолжать работать. Когда вы установите ArcGIS Data Store и создадите реляционное хранилище данных, данные новых опубликованных размещенных векторных слоев будут храниться в реляционном хранилище данных. Этот простейший рекомендуемый метод.
  • Удалить управляемую базу данных Прибегайте к этому методу, только если вам не нужны существующие размещенные векторные слои, поскольку они перестанут работать, если вы удалить управляемую базу данных и не добавите ее в качестве зарегистрированной базы данных.
  • Если вы не можете оставить существующую управляемую базу данных, то экспортируйте данные существующих размещенных векторных слоев, удалите существующие векторные слои, удалите управляемую базу данных, а затем свяжите ArcGIS Data Store с сайтом GIS Server и опубликуйте экспортированные данные заново. Более подробную информацию см. в разделе Переход на ArcGIS Data Store .

Используйте Мастер настройки хранилища данных для создания хранилища данных

Если вы запускаете мастер установки, то в веб-браузере по умолчанию автоматически откроется Мастер настройки хранилища данных . Вы также можете открыть этот мастер из меню программ компьютера или перейдя по URL-ссылке в браузере. URL-адрес Мастера настройки хранилища данных имеет формат https://datastoremachine.domain.com:2443/arcgis/datastore .

  1. Укажите URL-адрес сайта GIS Server , для которого вы создаете и регистрируете хранилище данных.

URL-адрес сайта GIS Server имеет вид: https://gisserver.domain.com:6443 . Обратите внимание на то, что даже если сайт GIS Server использует веб-адаптер, URL-адрес должен быть введен в указанном выше формате.

Пользователь должен быть встроенным (не корпоративным).

На одном и том же компьютере может быть создано сразу несколько типов хранилищ, но Esri не рекомендует этого делать, поскольку они будут конкурировать между собой за ресурсы памяти, что может снизить производительность работы.

В данной директории будут храниться файлы хранилища данных, а также резервная директория реляционного хранилища данных (если вы создали реляционное хранилище данных).

Примечание:

Вы не можете использовать путь UNC при задании директории файлов хранилища данных. Держите файлы хранилища данных на том же компьютере, где установлен ArcGIS Data Store . Однако вам следует перенести директорию резервной копии на другой компьютер, поскольку в ней хранятся файлы резервной копии реляционного хранилища данных, которые необходимы для восстановления данных размещенных векторных слоев. После завершения настройки хранилища данных, переместите архивную директорию на сетевой диск другого компьютера, не того, который вы выбрали для установки и хранения данных. При переходе к архивным папкам можно использовать путь UNC. Дополнительную информацию см. в разделе Управление архивами хранилища данных.

Помните, что первое реляционное хранилище данных или хранилище данных листов кэша, зарегистрированное на сайте GIS Server , будет основным компьютером. Если вы установите ArcGIS Data Store на втором компьютере и создадите другое реляционное хранилище данных или хранилище данных кэша листов, которое будет зарегистрировано на том же сайте GIS Server , то оно будет резервным компьютером.

После успешного завершения установки у вас будет настроен компьютер хранилища данных. Если при установке появлялись ошибки, щелкните Далее в диалоговом окне Итоговая информация о конфигурации , чтобы снова открыть Мастер настройки хранилища данных и ввести другие данные. О причинах ошибок в установке и методах их устранения см. раздел Решение проблем ArcGIS Data Store .

Используйте служебную программу configuredatastore для создания хранилища данных

Вы можете использовать служебную программу командной строки configuredatastore для создания реляционного хранилища данных, хранилища данных кэша листов и больших пространственно-временных данных и его регистрации на сайте GIS Server . Утилита установлена в /tools .

Если вы захотите с помощью скрипта создать на нескольких компьютерах хранилища пространственно-временных больших данных, то сначала надо настроить одно из этих хранилищ с GIS Server , и только после этого вы сможете с помощью скрипта создать на других компьютерах другие, дополнительные хранилища пространственно-временных больших данных.

  1. Откройте Командную строку, используя опцию Запустить от имени администратора .

В этом примере для URL-адреса GIS Server используется https://myserver.domain.com:6443/arcgis/admin , имя администратора и пароль – siteadmin и T1n@sp, указана директория данных C:\data\ , и создается реляционное хранилище данных:

configuredatastore https://myserver.domain.com:6443/arcgis/admin siteadmin T1n@sp c:\data\ --stores relational

Если необходимо создать несколько типов хранилищ данных на одном компьютере в одной и той же директории данных, то можно указать значения, разделенные запятыми. Например, вы можете создать реляционное хранилище данных и хранилище данных кэша листов на одном и том же компьютере, указав relational,tileCache с операцией —stores . Однако Esri не рекомендует размещать на одном и том же компьютере несколько хранилищ данных, поскольку они будут конкурировать между собой за ресурсы памяти, что может снизить производительность работы.

Основной компьютер хранилища данных будет создан и зарегистрирован на вашем сайте GIS Server .

Дальнейшие шаги

Убедитесь, что сайт GIS Server , с которым вы зарегистрировали ваше хранилище данных, был настроен в качестве хост-сервера вашего портала.

Если вы создали хранилище больших пространственно-временных данных для архивации данных наблюдений в реальном времени, убедитесь, что для вашего портала имеется интегрированный ArcGIS GeoEvent Server .

Если вы создали хранилище больших пространственно-временных данных для хранения выходных данных работы инструментов GeoAnalytics Tools , то убедитесь, что у вас имеется интегрированный ArcGIS GeoAnalytics Server .

В этом разделе
  1. Рекомендации перед созданием хранилища данных
  2. Используйте Мастер настройки хранилища данных для создания хранилища данных
  3. Используйте служебную программу configuredatastore для создания хранилища данных
  4. Дальнейшие шаги

Создание хранилища данных

Вы можете использовать мастер настройки хранилища данных для создания большинства типов хранилищ данных и присоединения их к сайту GIS Server , который выступает в роли хост-сервера портала ArcGIS Enterprise .

  • Вам необходимо развернуть хранилище объектов в режиме кластера.
  • Вам необходимо развернуть хранилище данных полистного кэша в режиме кластера.

Рекомендации перед созданием хранилища данных

Перед созданием хранилища данных убедитесь, что выполнены рекомендации ниже.

Дисковое пространство и память

Вам следует учесть объем дискового пространства и памяти, которые необходимы на компьютере, где вы создадите хранилище данных.

  • В реляционном хранилище данных могут храниться данные нескольких тысяч размещённых векторных слоёв, и для этого может потребоваться несколько гигабайт дискового пространства.
  • Размер кэша 3D-данных может превышать несколько гигабайт или даже терабайт, в зависимости от области, включенной в слой сцены, и сложности данных.
  • Когда вы архивируете данные, которые непрерывно поступают из потокового слоя, или когда вы отслеживаете местоположения нескольких полевых работников, хранилище больших пространственно-временных данных может быстро заполниться.
  • Чтобы в полной мере использовать кэшированные ответы на запросы для повышения производительности отрисовки векторных слоев, кэш должен сохраняться в хранилище объектов как можно дольше. Это означает, что дисковое пространство хранилища объектов может быстро заполниться. Чтобы упростить хранение кэшей ответов на запросы в течение более длительных периодов времени, используйте одну машину для хранилища объектов и убедитесь, что на этой машине большой объем свободного дискового пространства. То, сколько дискового пространства вам нужно, зависит от того, сколько слоев включено для кэширования, сколько уникальных вопросв выполнено к этим слоям и как долго существуют эти запросы. (Использование кластера хранилищ объектов не показало такого улучшения производительности отрисовки, как использование одной машины с большим объемом свободного дискового пространства.)

В любом случае важно следить за компьютерами хранилища данных и добавлять дисковое пространство по мере необходимости.

Вам также нужно быть уверенным, что на всех машинах достаточно доступной памяти. Например, хранилища больших пространственно-временных данных занимают на компьютере примерно 50 процентов доступной памяти после первичной настройки. Реляционные хранилища данных также резервируют системную память, чтобы можно было обработать данные. При большой нагрузке на размещённые векторные слои и слои сцен будут использоваться большие объёмы памяти. Графы знаний — мложные слои, моделирующие взаимоотношения между объектами. Просмотр и анализ этих взаимоотношений — это процесс, требующий больших затрат памяти.

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

Во всех случаях, отслеживайте журналы хранилища данных на предмет сообщений о месте на диске и памяти. Если на вашем компьютере закончится один из этих ресурсов, хранилище данных перестанет работать.

См. Системные требования ArcGIS Data Store для получения информации о минимальных требованиях к дисковому пространству, которое необходимо для создания каждого типа хранилища данных, и затем добавьте его к размеру данных, которые вы хотите хранить в каждом из них, и процессы, которые будут выполняться на каждой машине.

Несколько карт NIC или записей DNS

Если вы установите ArcGIS Data Store на компьютере, который содержит несколько карт сетевого контроллера интерфейса (NIC) или несколько записей DNS (также называемых записями), то определите, какой IP-адрес и имя хоста следует использовать для сетевого обмена данными. Перед созданием хранилища данных на компьютере определите, какой IP-адрес могут использовать другие компьютеры в вашей сети для связи с компьютером ArcGIS Data Store , откройте файл ArcGIS Data Store hostidentifier.properties и добавьте в него IP-адрес.

  1. Определите какой IP-адрес использовать. Откройте командную строку на разных компьютерах в одной сети и выполните команду ping на компьютере ArcGIS Data Store .
  2. Войдите на компьютер, на котором установлен ArcGIS Data Store и откройте hostidentifier.properties в текстовом редакторе. Используйте учетную запись ArcGIS Data Store .

Файл устанавлен в папку framework\etc в директории установки ArcGIS Data Store . По умолчанию, это местоположение C:\Program Files\ArcGIS\DataStore\framework\etc .

В данном примере использованный для сообщения IP-адрес – 12.34.56.789. hostidentifier=12.34.56.789

  • ArcGIS Server
  • Portal for ArcGIS

Хост-сервер

Развертывание ArcGIS Enterprise включает один сайт GIS Server , действующий как хост-сервер. Как минимум, хост-сервер должен быть сконфигурирован с реляционным хранилищем данных, созданным с помощью ArcGIS Data Store . Это реляционное хранилище данных содержит данные, используемые размещенными векторными слоями, созданными при добавлении файлов в вашу организацию и публикации векторных слоев, а также при публикации размещенных векторных слоев из ArcGIS Pro . Это также позволяет пользователям портала добавлять файлы значений, разделенных запятыми (CSV), непосредственно на карту.

Если на сайте GIS Server , который вы планируете использовать как хост-сервер, уже есть многопользовательская база геоданных, зарегистрированная как управляемая им база данных, следуйте инструкциям в статье Изменить управляемую базу данных на реляционное хранилище данных ArcGIS Data Store , чтобы перенастроить хост-сервер с реляционным хранилищем данных.

Создание хранилища данных с помощью мастера Конфигурации хранилища данных

Если вы запускаете мастер установки, Мастер конфигурации Data Store откроется в веб-браузере по умолчанию. Вы также можете открыть этот мастер из меню программ компьютера или перейдя по URL-ссылке в браузере. URL-ссылка Мастера настройки хранилища данных имеет формат https://datastoremachine.domain.com:2443/arcgis/datastore .

  1. Укажите полное доменное имя компьютера на сайте ArcGIS GIS Server , который будет использоваться в качестве хост-сервера портала.

Предоставьте компьютер в формате gisserver.domain.com . Если у вас сайт с несколькими компьютерами, вы можете использовать полное доменное имя любого из компьютеров на сайте GIS Server .

У пользователя должна быть встроенная учетная запись.

Несмотря на то, что есть возможность создавать несколько типов хранилищ данных на одном компьютере, Esri рекомендует вам этого не делать, поскольку эти хранилища данных будут использовать все ресурсы памяти, что приведет к ухудшению производительности. Если тип хранилища данных не включен, это может говорить о том, что этот тип не установлен на компьютере или что этот тип хранилища данных уже был настроен на этом компьютере.

В данной директории будут храниться файлы хранилища данных, а также резервная директория реляционного хранилища данных (если вы создали реляционное хранилище данных).

Примечание:

Когда вы указываете директорию ArcGIS Data Store для кэша листов или хранилища пространственно-временных больших данных, в пути к папке не может быть пробелов. Вы не можете использовать путь UNC при задании директории файлов хранилища данных. Не используйте файловое хранилище для этой директори. Размещайте файлы хранилища данных на том же компьютере, где установлен ArcGIS Data Store .

Первое хранилище реляционных данных, которое вы зарегистрируете на сайте GIS Server , будет считаться основным компьютером. Если вы установите ArcGIS Data Store на втором компьютере и создадите другое реляционное хранилище данных, которое будет зарегистрировано на том же сайте GIS Server , то оно будет считаться резервным компьютером. Это также верно для хранилищ данных полистного кэша, работающего в режиме первично-дежурный.

После успешного завершения установки у вас будет настроен компьютер хранилища данных. Если при установке появлялись ошибки, щелкните Далее в диалоговом окне Итоговая информация о конфигурации , чтобы снова открыть Мастер конфигурации Data Store и задать другие сведения. О причинах ошибок и методах их устранения см. в разделе Устранение неполадок ArcGIS Data Store .

После создания хранилища данных настройте папку с резервной копией в расположении, отдельном от места установки ArcGIS Data Store . Дополнительную информацию см. в разделе Управление архивами хранилища данных.

Создание хранилища данных с помощью утилиты configuredatastore

Вы можете использовать утилиту configuredatastore для создания всех типов хранилищ данных, встроенных через ArcGIS Data Store . При настройке хранилища данных оно регистрируется с сайтом GIS Server , который используется для хост-сервера портала ArcGIS Enterprise . Утилита configuredatastore устанавливается в /tools .

Примечание:

Если вы захотите с помощью скрипта создать на нескольких компьютерах хранилища пространственно-временных больших данных, то сначала надо настроить одно из этих хранилищ с сайта GIS Server , и только после этого вы сможете с помощью скрипта создать на других компьютерах другие, дополнительные хранилища пространственно-временных больших данных. Включите в свой скрипт время ожидания, чтобы дополнительные машины хранения пространственно-временных больших данных не добавлялись одновременно.

  1. Откройте Командную строку, используя опцию Запустить от имени администратора .

Если у вас сайт с несколькими компьютерами, вы можете использовать полное доменное имя любого из компьютеров на сайте GIS Server . Если вы указываете тип хранилища данных, который не установлен на компьютере, где запущена утилита configuredatastore, то вы получите сообщение об ошибке.

В этом примере для имени компьютера на сайте GIS Server используется myserver.domain.com , имя администратора и пароль – siteadmin и T1n@sp, указана директория данных C:\data\ , создается реляционное хранилище данных:

configuredatastore myserver.domain.com siteadmin T1n@sp c:\data\ --stores relational

В этом примере создается хранилище больших пространственно-временных данных:

configuredatastore myserver.domain.com siteadmin T1n@sp c:\temporal\data --stores spatiotemporal

При создании хранилища данных кэша листов можно воспользоваться операцией —mode , чтобы задать тип развертывания. Для хранилищ данных кэша листов есть следующие типы развертывания: режим первичного ожидания (по умолчанию) или режим кластера. Если вы не зададите операцию —mode , хранилища данных кэша листов будет создано в режиме основной-резервный. Если вы указываете тип хранилища данных, который не установлен на компьютере, где запущена команда configuredatastore, то вы получите сообщение об ошибке. Запустите ту же утилиту на всех компьютерах хранилища данных полистного кэша в кластере.

configuredatastore myserver.domain.com siteadmin T1n@sp c:\scenedata\ --stores tileCache --mode cluster

Операция —mode также используется для задания режима развертывания хранилища объектов. Для хранилищ объектов развертывание по умолчанию подразумевает развертывание на одной машине (в режиме основной-резервный). Если вы планируете использовать несколько компьютеров в хранилище объектов, укажите при создании хранилища объектов —mode cluster . В этом примере в качестве хранилища объектов развернут кластер из трех машин. Запустите ту же утилиту на каждом из трех компьютеров хранилища объектов ArcGIS Data Store .

configuredatastore myserver.domain.com siteadmin T1n@sp c:\ftcacheds --stores object --mode cluster
Примечание:

Вы не можете изменить режим хранилища объектов после его создания. Когда вы указываете директорию ArcGIS Data Store для кэша листов, хранилища пространственно-временных больших данных, хранилища данных или хранилища объектов, в пути к папке не может быть пробелов.

Если необходимо создать несколько типов хранилищ данных на одном компьютере в одной и той же директории данных, укажите значения, разделенные запятыми. Например, вы можете создать реляционное хранилище данных и хранилище данных кэша листов на одном и том же компьютере, указав relational,tileCache с операцией —stores . Однако Esri не рекомендует размещать на одном и том же компьютере несколько хранилищ данных, поскольку они будут конкурировать за ресурсы памяти, что может снизить производительность работы.

Что дальше

Если вам требуется более одного типа хранилища данных, создайте дополнительные типы хранилищ данных. Хотя вы можете создать другой тип хранилища данных на этом же компьютере, следует устанавливать и настраивать дополнительные типы хранилищ данных на отдельных компьютерах.

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

Убедитесь, что сайт GIS Server , на котором вы зарегистрировали хранилище данных, был настроен в качестве хост-сервера вашего портала.

В этом разделе
  1. Рекомендации перед созданием хранилища данных
  2. Создание хранилища данных с помощью мастера Конфигурации хранилища данных
  3. Создание хранилища данных с помощью утилиты configuredatastore
  4. Что дальше

Пять правил эффективной организации хранилища данных

Хаос — естественное состояние Вселенной. В закрытых системах постепенно растет энтропия, и этого не изменить. Хранилище данных по своей природе тоже тяготеет к хаосу, но можно поддерживать в нем порядок.

Хаос — естественное состояние Вселенной. В закрытых системах постепенно растет энтропия, и этого не изменить. Хранилище данных по своей природе тоже тяготеет к хаосу. Если не поддерживать в нем порядок , то в конечном счете вы получите мешанину из объектов, в которых будет сложно ориентироваться и которыми будет невозможно управлять, и не решитесь их удалить. Некогда обслуживанием баз данных занимались специальные администраторы, но теперь в большинстве случаев за порядок в данных не отвечает никто (то есть кто угодно).

Регулярное обслуживание хранилища чрезвычайно важно для команды специалистов по обработке данных. В хранилище данных с плохим обслуживанием:

  • Столбцы, таблицы, схемы и базы данных имеют несогласованные, а порой нелогичные имена.
  • Многие пользователи выполняют простые выборки данных из учетной записи root-пользователя.
  • Активно используются публичные схемы и роли.
  • Объекты в схемах имеют несогласованные права владения, привилегии и происхождение.

При таком хранении данных сложно получить ответы даже на простые вопросы:

  • Как те или иные данные попали в это хранилище?
  • У кого есть доступ к этим данным?
  • Что случится, если удалить эту таблицу? Ею вообще кто-то пользуется? Зависят ли от нее нижестоящие процессы?
  • Кто сделал этот ресурсоемкий запрос?
  • Как мне назвать нового пользователя, схему, таблицу, столбец?

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

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

  1. Используйте схемы для логической группировки объектов.
  2. Именуйте объекты в хранилище согласованно и осмысленно.
  3. Используйте разные учетные записи для каждого человека и каждого приложения, которые подключаются к хранилищу данных.
  4. Систематизируйте привилегии.
  5. Ограничьте доступ к привилегиям суперпользователя.

Каждое правило дополнено практическими рекомендациями, которые помогут его соблюдать. Эти рекомендации (как и все прочие наши материалы) отражают наши взгляды и не являются универсальными для всех организаций. Мы думаем, что это хорошая отправная точка для тех, кто только начал отвечать за администрирование хранилища и еще не сталкивался с описанными проблемами.

Используйте схемы для логической группировки объектов

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

  • Все отношения (то есть таблицы и виды) должны создаваться одним процессом.
  • Все отношения должны иметь одного владельца.
  • Ко всем отношениям следует применять одинаковые привилегии (см. ниже).
  • Не нужно использовать публичную схему.
  • Для источников данных каждому источнику должна соответствовать своя схема с осмысленным именем, например: stripe или zendesk . В Snowflake мы часто группируем их в необработанной базе данных, в то время как в Redshift мы нередко дополняем имена схем источников данных префиксом raw, например: raw_stripe .
  • Для рабочих преобразований, которые запрашиваются инструментами бизнес-аналитики, группируйте модели по бизнес-направлениям, например: core (общая модель данных), marketing или finance .
  • Для проектных преобразований группируйте модели по их владельцу, например в схеме с именем dbt_claire .

Именуйте объекты в хранилище согласованно и осмысленно

Об этом вы уже не раз слышали: придумывать имена очень тяжело.

В хранилище данных есть множество объектов, которым нужно присвоить имя: базы данных, схемы, отношения, столбцы, пользователи и общие роли. В Snowflake, например, в именах также нуждаются хранилища (warehouses; то есть вычислительные ресурсы), стадии (stages) и каналы (pipes).

Последовательный подход к именованию позволяет реже задумываться при создании объектов и облегчает пользователям понимание структуры хранилища. Только без фанатизма! Мне встречались хранилища, где напридумывали столько правил именования, что без знания этих правил было сложно ориентироваться (например, вариант d_account_v.f_active использовался вместо интуитивно понятного accounts.is_active ). Поэтому очень важно использовать осмысленные имена.

Вот несколько наших правил именования объектов в хранилище.

Типовые элементы обозначаются с помощью префиксов и суффиксов, например все столбцы с временными метками заканчиваются на _at , все таблицы измерений начинаются с dim_ , а столбцы метаданных начинаются с символа подчеркивания.

Приоритет — удобочитаемость, а не краткость. Например, вариант customer_account_id лучше чем cust_acc_id .

В именах используется только стиль snake_case (подчеркивания вместо пробелов).

После выбора метода именования мы рекомендуем оформить его в виде правил и распространить среди всех пользователей хранилища. Мы включили все наши правила именования в руководство по стилю dbt.

Используйте разные учетные записи для каждого человека и каждого приложения, которые подключаются к хранилищу данных

Прежде чем перейти к этому пункту, стоит отметить, что в разных хранилищах данных пользователи, группы и роли могут рассматриваться по-своему (если не боитесь углубиться в эту тему, прочтите мою статью в Discourse).

Очень сложно давать рекомендации, не привязанные к конкретному хранилищу данных. В дальнейшем в этой публикации я буду использовать для обозначения пользователей, групп и ролей два абстрактных понятия:

  • Пользователь: одиночный набор учетных данных для входа.
  • Общая роль: группа (в Redshift) или роль (в Postgres и Snowflake), членом которой может быть пользователь.

Мы всегда создаем отдельные учетные записи для каждого человека и приложения, подключающихся к хранилищу данных. Пользователям мы даем осмысленные имена, например claire , drew , stitch , fivetran и looker . Это упрощает управление доступом, исправление ошибок и понимание происхождения данных. Учетные данные должны храниться в защищенном виде, и только администраторы могут иметь доступ к паролям пользователей приложений.

Если пользователей много, точечно управлять их привилегиями очень трудно. Поэтому мы предоставляем привилегии общим ролям (об этом далее), а пользователи наследуют их путем членства в этих ролях. Мы стремимся создавать как можно меньше общих ролей с именами loader , transformer и reporter — и даже если ваше хранилище данных допускает это, не следует использовать многоуровневую иерархию общих ролей, так она зачастую усложняет администрирование.

Систематизируйте привилегии

Хранилища данных позволяют настраивать привилегии очень точно. Пользователю или общей роли можно назначить любую комбинацию из следующих привилегий (фактически это лишь поднабор возможных вариантов):

  • Для базы данных: использование, создание.
  • Для схемы: использование, создание.
  • Для таблицы: выбор, вставка, обновление, удаление, обрезание, создание связей и ссылок.

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

Слишком свободная в плане привилегий схема может привести к непоправимым ошибкам, а излишне строгая схема будет тормозить работу рядовых пользователей базы данных, которые хотят просто выполнять свою работу.

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

Мы обнаружили, что упрощенная структура привилегий в сочетании с общими ролями обеспечивает оптимальный баланс между уровнем контроля и простотой обслуживания. В наших хранилищах данных мы реализуем следующие два стиля привилегий.

  • read-schema : возможность делать выборку из схемы и всех входящих в нее отношений.
  • create-schema : возможность создавать схему в базе данных, а значит, создавать входящие в нее отношения и иметь все привилегии в них.

Затем, мы предоставляем следующие привилегии каждой общей роли в хранилище данных.

  • loader: create-schema .
  • transformer: read-schema , create-schema .
  • reporter: read-schema (ограничено схемами преобразований).

Сведения о том, как организовать подобное хранилище данных, включая конкретные операторы, см. в моей статье на сайте Discourse.

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

Ограничьте доступ к привилегиям суперпользователя

Привилегии суперпользователя (такие как создание пользователей и удаление отношений, которые ему не принадлежат) должны применяться ограниченно. Пользователи не должны иметь учетную запись или роль с расширенными привилегиями, если им не нужно выполнять команды, требующие таких привилегий.

Во-первых, мы ограничиваем доступ к учетной записи root-пользователя в Postgres и Redshift и к роли AccountAdmin в Snowflake. Пароль к ним предоставляется только в случае необходимости (но важно проследить, чтобы он не был утерян при увольнении сотрудников из организации).

Во-вторых, мы следим, чтобы пользователи не получали права суперпользователя по умолчанию. Реализация этого правила зависит от типа хранилища данных и от того, как в нем работает наследование прав.

  • Postgres: создайте отдельную роль с привилегиями суперпользователя и назначайте ее только нужным пользователям. Убедитесь, что для этой роли отключено наследование, чтобы пользователи получали роль с повышенными привилегиями в явном виде.
  • Redshift: создайте отдельного пользователя _super (например, claire_super ) для каждого, которому нужны привилегии суперпользователя (их можно назначать только пользователям, но не группам). По умолчанию пользователи должны подключаться к хранилищу данных с учетными данными обычного пользователя.
  • Snowflake: создайте отдельную роль с привилегиями суперпользователя и назначьте ее нужным пользователям. В качестве роли по умолчанию каждому пользователю нужно назначать роль, отличную от роли суперпользователя.

Дополнительное конфигурирование

  • В большинстве хранилищ данных можно реализовать белый список IP-адресов. Если есть такая возможность, рекомендуем ее использовать.
  • Если вы планируете создать хранилище данных Snowflake, у моего коллеги Джереми Коэна (Jeremy Cohen) есть отличное руководство по этой теме.
  • Что касается оптимизации производительности Postgres и Redshift, то это тема настолько обширная, что требует отдельной статьи.

В заключение

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

Если вы только начинаете работать с хранилищем, заранее обдумайте принципы его администрирования — это окупится сполна. Если же вы пытаетесь противостоять энтропии в уже существующем хранилище, то вам придется решить, с чего начать. Мы с интересом послушаем вас в Slack!

Перевод статьи подготовлен в преддверии старта курса «Data Warehouse Analyst». Всех, кто желает подробнее узнать о курсе, приглашаем записаться на бесплатный вебинар, который состоится 28 июля. В рамках вебинара вы подробно узнаете о программе курса и процессе обучения, а также сможете задать вопросы нашим экспертам.

  • Блог компании OTUS
  • Хранение данных
  • Data Engineering

Что такое хранилище данных?

Хранилище данных – это цифровой репозиторий, который хранит и защищает информацию в компьютерных системах. Оно может быть сетевым хранилищем, распределенным облачным хранилищем, физическим жестким диском или виртуальным хранилищем. В нем могут храниться структурированные данные, такие как информационные таблицы, и неструктурированные данные, такие как электронные письма, изображения и видео. Организации используют хранилища данных для хранения информации, а также обмена и управления ею в разных бизнес-подразделениях.

Почему хранилище данных является важным?

Хранилище данных можно использовать для надежного сохранения информации в компьютерных системах и предотвращения потери данных. Компьютерные системы хранят информацию на постоянных запоминающих устройствах. Постоянное хранилище является энергонезависимым, что означает, что оно сохраняет данные даже после выключения питания устройства. Это гарантирует, что компьютерная система будет иметь доступ к тем же данным после повторного включения.

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

В связи со сложностью требований к данным компании используют различные типы инфраструктуры их хранения для обеспечения доступности, избыточности, управления и прозрачности. Например, организации используют Эластичную файловую систему Amazon (Amazon EFS) для бессерверной файловой системы и Простой сервис хранения данных Amazon (Amazon S3) для хранения объектов.

Какие термины относятся к хранилищам данных?

В контексте хранения данных несколько терминов часто используются как взаимозаменяемые, но имеют несколько разные значения. Ниже представлены несколько примеров.

База данных

База данных – это организованная система хранения данных. Большинство баз данных основаны на реляционной архитектуре баз данных. Реляционная система управления базами данных (RDBMS) дает пользователям возможность хранить данные в таблицах, связанных с определенными точками данных. Организации используют базы данных для хранения транзакционных данных, таких как бухгалтерские, торговые и административные журналы.

Хранилища данных и базы данных

Обсуждение хранилищ данных подразумевает различные методы хранения и получения информации. База данных – это один из методов, который позволяет приложениям легко хранить, обмениваться и извлекать данные. В отличие от файловых систем, база данных придерживается определенных правил организации, форматирования и хранения данных.

Хранилище данных

Хранилище данных – это обширная коллекция связанной с бизнесом информации, полученной из различных источников. Компании используют хранилища данных для поддержки бизнес-аналитики и аналитики. Бизнес-аналитики и специалисты по анализу данных извлекают из хранилища данных действенные идеи.

Хранилища данных

Хранилище данных – это зонтичный термин, который включает в себя различные аппаратные средства, технологии, форматы и архитектуры для хранения и поиска информации. Но существует и особый тип хранилища данных для консолидации аналитических данных для бизнеса. Например, компания GE Renewable Energy использует AWS Redshift для получения новых знаний о собранных данных.

Как работает хранилище данных?

Физическое устройство хранения данных – это технология, лежащая в основе хранилища данных. Вы можете читать и записывать информацию на устройство в определенных форматах, таких как файлы, таблицы или блоки. Устройство может быть локальным, удаленным или находиться в облаке. Большие хранилища данных обычно распределены между несколькими физическими устройствами в разных географических точках. Программные системы и сервисы абстрагируют базовые операции хранилища данных.

Ниже мы приводим несколько примеров физических устройств. Различные типы устройств хранения данных обеспечивают разную степень безопасности и избыточности.

Флеш- и твердотельные накопители

Твердотельный накопитель (SSD) – это полупроводниковая технология, позволяющая записывать и считывать данные в микросхемах флэш-памяти. Технология флэш-памяти была коммерчески доступна в ручках-накопителях, прежде чем стать альтернативой жестким дискам (HDD). По сравнению с жестким диском, физический SSD не имеет движущихся частей, что означает более высокую производительность и долгий срок службы.

Гибридный массив хранения данных

Гибридный массив хранения данных – это физическая система хранения данных, состоящая из SSD и HDD. Хотя твердотельный накопитель обеспечивает работу с низкой задержкой, его стоимость в расчете на единицу хранения гораздо выше, чем у жесткого диска. Поэтому организации используют гибридные массивы хранения данных, чтобы сбалансировать производительность, емкость и стоимость.

RAID

RAID означает избыточный массив независимых дисков. Это технология, которая позволяет хранить одни и те же данные в нескольких местах на твердотельном накопителе.

Какие существуют форматы хранилищ данных?

Хранилища данных предназначены для обработки и организации данных в различных форматах.

Файловое хранилище

Файловое хранилище организует хранимую информацию в виде иерархии файлов и папок сверху вниз. Компьютеры используют файловые хранилища, чтобы облегчить пользователям хранение, поиск и извлечение информации. Файловую систему хранения можно использовать для хранения и организации практически любого типа данных. Хотя файловые хранилища просты в использовании, их трудно горизонтально масштабировать из-за тесно связанной архитектуры.

Блочное хранилище

Блочное хранилище разделяет данные на множество сегментов одинакового размера, называемых блоками. Система блочного хранения хранит различные блоки данных на разных физических устройствах. Когда пользователи запрашивают конкретные данные, система извлекает и собирает их воедино. Используется система отображения для поиска запрашиваемых данных на основе метаданных блока. Метаданные – это дополнительная информация, которая помогает пользователям или приложениям находить определенную информацию в хранилище.

Объектное хранилище

Объектное хранилище хранит неструктурированные данные в масштабируемом, самодостаточном хранилище, которое может быть размещено на различных серверах. Каждый блок данных, принадлежащий объекту, описан в его метаданных. Например, объект может хранить контент социальных сетей, видео, электронные письма и аудиофайлы. Приложения осуществляют поиск информации в хранилище объектов, используя определенные атрибуты метаданных, такие как разрешение, продолжительность и местоположение видео.

Какие существуют типы хранилищ данных?

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

Хранилище с прямым подключением

Хранилище с прямым подключением (DAS) состоит из устройств хранения данных, которые физически подключаются к компьютеру. Например, система DAS подключает жесткий диск, оптический диск или флэш-накопитель к компьютеру. Создание резервных копий на DAS достаточно простое, но обмен данными с другими компьютерами вызывает трудности.

Хранилище с сетевым подключением

NAS (Network-attached storage) – это устройство хранения данных, предназначенное для хранения файлов, которое обеспечивает постоянный доступ к данным для эффективной совместной работы приложений и пользователей по сети. Устройства NAS – это специальные серверы, которые обрабатывают только запросы на хранение данных и обмен файлами. Они предоставляют быстрые, безопасные и надежные услуги хранения для частных сетей.

Сеть хранения данных

Сеть хранения данных (SAN) – это высокоскоростная инфраструктура хранения данных, использующая различные типы носителей и протоколы. Предприятия используют SAN для масштабирования блочного хранилища с легкостью и доступностью. SAN использует виртуализацию хранилища, чтобы скрыть сложность инфраструктуры от многочисленных устройств.

Облачное хранилище

Облачное хранилище – это распределенная инфраструктура хранения данных, размещенная и управляемая облачными провайдерами. Она более масштабируемая, гибкая и имеет удаленный доступ по сравнению с локальными хранилищами. Например, пользователи могут подключаться к облачному хранилищу AWS при условии, что у них есть подключение к Интернету и они авторизованы для доступа к данным. Облачное хранилище также является экономически эффективным, поскольку пользователи платят только за используемую емкость.

Гибридное облачное хранилище

Гибридное облачное хранилище позволяет компаниям разделять данные между локальными и облачными сервисами хранения. Гибридное облачное хранилище помогает компаниям перейти от устаревшей архитектуры к более дешевой и безопасной облачной среде.

Как AWS может удовлетворить ваши потребности в хранении данных?

AWS предоставляет несколько десятков облачных сервисов хранения данных, чтобы удовлетворить ваши потребности в хранении данных. Кроме того, у вас есть возможность размещать на своих инстансах Эластичного вычислительного облака Amazon (Amazon EC2) все, что захотите. Чтобы выбрать лучший сервис облачного хранения AWS, соответствующий вашим требованиям, необходимо сделать следующее:

  • Разделите вашу систему на рабочие нагрузки.
  • Определите механизм хранения данных, наиболее подходящий для конкретной рабочей нагрузки, а не единое хранилище данных для всей системы.
  • Далее выполните оптимизацию по стоимости и производительности, чтобы найти наиболее подходящий для вас сервис хранения данных.

Например, Служба реляционных баз данных Amazon (Amazon RDS) является популярным выбором для организаций, которые хотят создать и масштабировать реляционные базы данных. Она предоставляет приложениям облачное хранилище данных высокой доступности для размещения постоянных оперативных данных. Amazon RDS предлагает самоуправляемое решение для предоставления баз данных, которое освобождает разработчиков от утомительной настройки инфраструктуры хранения данных.

Начните работу с хранилищами данных на AWS, зарегистрировав аккаунт AWS уже сегодня.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *