Подключение к базе данных и просмотр существующих объектов — SQL Server Data Tools (SSDT)

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья

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

Теперь обозреватель объектов SQL Server в Visual Studio содержит специальный узел SQL Server, в котором все подключенные экземпляры SQL Server и их базы данных сгруппированы так, как это делается в SSMS. Подключенные экземпляры SQL Server могут быть локальными, например запущенными SQL Server 2008 или локальными экземплярами SQL Azure.

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

Подключение к экземпляру базы данных

  1. Проверьте, открыт ли в Visual Studio обозреватель объектов SQL Server. Если нет, в меню Вид выберите Обозреватель объектов.

  2. Щелкните правой кнопкой мыши узел SQL Server в обозревателе объектов SQL Server и выберите Добавить SQL Server.

  3. В диалоговом окне Соединение с сервером введите в поле Имя сервера имя экземпляра, к которому нужно подключиться, учетные данные и нажмите кнопку

    Подключить.

  4. В обозревателе объектов SQL Server разверните узел Базы данных под экземпляром сервера. Все базы данных, размещаемые на этом экземпляре сервера, появятся в узле Базы данных .

  5. Разверните узел AdventureWorks (или другую базу данных). Обратите внимание, что сущности базы данных организованы иерархически, как это делается в среде SQL Server Management Studio.

Подключение к Microsoft SQL Server из ArcGIS—ArcGIS Server

В следующем списке собраны шаги, которые необходимы для подключения ArcGIS к базе данных Microsoft SQL Server, включая базу данных, содержащую базу геоданных:

  • Настройка экземпляра SQL Server на прием подключений от других удаленных компьютеров.
  • Установка драйвера Microsoft ODBC на компьютерах с клиентом ArcGIS.
  • Создайте подключение к базе данных.
  • Для публикации веб-сервисов ArcGIS Server, ссылающихся на данные в вашей базе данных SQL Server, зарегистрируйте файл подключения к базе данных с сайтами ArcGIS Server.

Настройка экземпляра на прием подключений

По умолчанию экземпляры SQL Server не могут принимать подключения от удаленных компьютеров. Если у вас имеется только что установленный SQL Server, убедитесь, что сервис SQL Server работает и слушает необходимые порты. См. документацию Microsoft SQL Server для получения более подробной информации.

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

Для использования шифрованных подключений необходима дополнительная настройка на SQL Server и машинах клиента.

Установка драйвера ODBC для SQL Server

Загрузите 64-битный драйвер Microsoft ODBC для SQL Server с Microsoft Download Center или из My Esri. Убедитесь, что вы загрузили ODBC Microsoft, поддерживаемый версией SQL Server, к которому вы будете подключаться. Установите драйвер на все компьютеры с ArcGIS Pro и ArcGIS Server.

Если у вас нет необходимых прав доступа для установки ПО на компьютерах, на которых запущены клиенты ArcGIS, обратитесь к вашему IT-отделу для помощи в установке и настройке драйвера ODBC Microsoft.

Если ArcGIS Server и SQL Server установлены на одном сервере, то отдельный драйвер ODBC на этом компьютере не обязательны.

При подключении из ArcGIS Server на Ubuntu к любой поддерживаемой версии SQL Server вы должны, в дополнение к драйверу ODBC, установить пакет Microsoft unixodbc-dev на все машины с ArcGIS Server.

Подключение к базе данных

Вы можете использовать диалоговое окно Подключение базы данных в ArcGIS Pro для подключения к базе данных, как это описано ниже.

Либо вы можете запустить инструмент Создать подключение базы данных в ArcGIS Pro, либо использовать Python для запуска команды Create Database Connection с компьютера ArcGIS Server для создания файла подключения базы данных (.sde), который подключается к базе данных.

Вы не можете использовать инструмент геообработки Создать подключение к базе данных, если подключение будет использовать авторизацию Microsoft Azure Active Directory.

Для использования файла подключения базы данных с ArcGIS Server необходимо следующее:

Подсказка:

Убедитесь, что учетная запись, которая используется для подключения, имеет соответствующие права на данные, к которым необходим доступ. Если подключение использует аутентификацию на уровне операционной системы, и вы будете публиковать веб-сервисы с помощью этого подключения, убедитесь, что у учетной записи ArcGIS Server есть соответствующие права на данные, которые входят в этот веб-сервис. Cм. разделы Права доступа для баз геоданных в SQL Server или Права доступа для использования ArcGIS с базой данных SQL Server для получения подробной информации о правах для различных типов пользователей баз данных.

Следуйте инструкциям ниже для подключения к базе данных SQL Server из диалогового окна Подключение базы данных в ArcGIS Pro:

  1. Откройте панель Каталог в ArcGIS Pro.
  2. Щелкните правой кнопкой Базы данных и выберите Новое подключение к базе данных.
  3. Из ниспадающего списка Платформа базы данных выберите SQL Server.
  4. Введите название экземпляра SQL Server в поле Экземпляр.
  5. Выберите тип аутентификации, который будет использоваться при подключении к базе данных.

    Опции Azure Active Directory поддерживаются только при подключении Azure SQL Database или Azure SQL Managed Instance.

  6. В поле База данных выберите имя определенной базы данных, к которой вы хотите подключиться, на экземпляре SQL Server или Azure SQL Managed Instance, либо, для всех других сервисов баз данных, введите имя базы данных.

    Длина имени базы данных ограничена 31 символом.

  7. Нажмите ОК, чтобы создать файл подключения.

Подключение к базе данных появляется в разделе Базы данных на панели Каталог, а файл подключения (.sde) создается в директории проекта ArcGIS Pro.

Вы можете переименовать файл, указав новое имя на панели Каталог и нажав Enter.

Зарегистрировать базу данных в ArcGIS Server

Чтобы разрешить доступ сайта ArcGIS Server к данным, используйте созданный файл подключения для добавления зарегистрированного источника данных в ArcGIS Pro или добавления элемента хранилища данных на портал.


Отзыв по этому разделу?

Создать подключение к базе данных — ArcGIS Insights

Подключения к базе данных поддерживаются в Insights в ArcGIS Enterprise и Insights desktop.

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

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

  • Перед созданием подключения к базе данных необходимо добавить соответствующий соединитель. Дополнительные сведения см. в разделах Необходимые файлы поставщиков и Управление типами соединителей.
  • У вас должны быть соответствующие права доступа к базе данных, к которой вы хотите подключиться. Если у вас нет прав доступа к базе данных, обратитесь к администратору базы данных.
  • Вы должны иметь возможность аутентифицировать соединение. Для большинства баз данных для аутентификации используются имя пользователя и пароль. SQL Server и BigQuery используют следующие альтернативные методы аутентификации:
    • SQL Server может использовать аутентификацию SQL Server (имя пользователя и пароль) или аутентификацию ОС. Дополнительные сведения см. в разделе Включение проверки подлинности ОС.
    • BigQuery использует аутентификацию учетной записи службы. Дополнительные сведения см. в разделе Создание учетной записи службы и закрытого ключа.

Создание соединений с базой данных

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

Создание подключения с домашней страницы

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

  1. Перейдите на вкладку Подключения .
  2. Щелкните Новое соединение и выберите в меню База данных.

    Появится окно Новое подключение.

  3. Выберите тип базы данных, к которой вы хотите подключиться. В списке перечислены только типы баз данных, доступные для вашей организации. Дополнительные сведения см. в разделе Управление типами соединителей.
  4. Укажите свойства соединения для вашей базы данных. Обязательные поля отмечены звездочкой (*).
  5. Нажмите Добавить.

Создано соединение с реляционной базой данных. Соединение можно обновить на вкладке «Подключения» на домашней странице. Дополнительные сведения см. в разделе Обновление подключения к базе данных.

Как владелец подключения к базе данных в Insights in ArcGIS Enterprise, вы можете поделиться элементом с членами группы, чтобы они могли использовать данные из подключения к базе данных в своем анализе.

Создайте подключение из окна «Добавить на страницу»

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

  1. Откройте окно Добавить на страницу одним из следующих способов:
    • Создайте книгу. Окно Добавить на страницу появляется при создании книги.
    • Нажмите кнопку Добавить на страницу над панелью данных в существующей книге.
    • Создайте страницу в существующей книге. Окно Добавить на страницу появляется при создании страницы.
  2. В окне Добавить на страницу выберите База данных.
  3. Нажмите Новое подключение.
  4. Укажите свойства соединения для вашей базы данных. Обязательные поля отмечены звездочкой (*).
  5. Нажмите OK.

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

Создано соединение с реляционной базой данных. Соединение можно обновить на вкладке «Подключения» на домашней странице. Дополнительные сведения см. в разделе Обновление подключения к базе данных.

Как владелец подключения к базе данных в Insights in ArcGIS Enterprise, вы можете поделиться элементом с членами группы, чтобы они могли использовать данные из подключения к базе данных в своем анализе.

Свойства соединения

Соединения с базой данных включают как обязательные, так и необязательные свойства. Обязательные свойства отмечены в окне Новое подключение звездочкой (*).

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

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

Свойство Описание Базы данных
900 02 Имя

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

Требуется для всех баз данных.

Тип

Тип базы данных, например, Oracle или SQL Server. В списке перечислены только соединители, доступные для вашей организации. Дополнительные сведения см. в разделе Управление типами соединителей.

Требуется для всех баз данных.

Пространственный тип по умолчанию

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

Требуется для Oracle и PostgreSQL.

Метод подключения

Метод подключения к базе данных Oracle. Способ подключения может быть Basic или TNS. Базовый метод создает соединение, используя имя сервера, имя экземпляра и номер порта. Метод TNS создает соединение, используя путь к файлу TNS и псевдоним.

Требуется для Oracle.

Имя сервера

Имя узла базы данных.

Требуется для баз данных Oracle, использующих базовый метод подключения, баз данных PostgreSQL, SAP HANA и SQL Server, использующих аутентификацию SQL Server.

Имя сервера (Полное доменное имя)

Полное доменное имя с компьютера ArcGIS Server для вашей организации.

Требуется для баз данных SQL Server, использующих аутентификацию ОС (Windows).

Имя экземпляра

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

Требуется для баз данных Oracle, использующих базовый метод подключения. Необязательно для SQL Server.

Путь к файлу TNS

Путь, по которому файл TNS сохранен на вашем компьютере (например, C:\oracle\network\admin). Путь не включает имя файла TNS (tnsnames.ora).

Требуется для баз данных Oracle, использующих метод подключения TNS.

Псевдоним TNS

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

Требуется для баз данных Oracle, использующих метод подключения TNS.

Номер порта

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

Требуется для SAP HANA. Необязательно для баз данных Oracle, использующих базовый метод подключения, PostgreSQL и SQL Server.

Метод аутентификации

Метод проверки подключения к базе данных. Метод аутентификации может быть либо SQL Server, либо Windows.

Требуется для SQL Server.

Project

Проект, в котором хранится ваш набор данных BigQuery.

Требуется для BigQuery.

Имя счета

Имя учетной записи, в которой сохранена база данных.

Требуется для Снежинки.

Домен или имя пользователя

Доменное имя или имя пользователя, которое вы используете для аутентификации подключения к базе данных. Для подключений к SQL Server с использованием проверки подлинности Windows используйте доменное имя. Для всех других баз данных и методов аутентификации используйте имя пользователя.

Требуется для Oracle, PostgreSQL, SAP HANA, Snowflake и SQL Server.

Пароль

Пароль, соответствующий используемому вами имени пользователя.

Требуется для баз данных Oracle, PostgreSQL, SAP HANA, Snowflake и SQL Server, использующих аутентификацию SQL Server.

Электронная почта учетной записи службы

Адрес электронной почты, связанный с вашей учетной записью службы Google.

Требуется для BigQuery.

Закрытый ключ

Закрытый ключ для вашей учетной записи службы Google.

Требуется для BigQuery.

Подключение с использованием SSL

Разрешить подключение к базе данных SAP HANA с использованием Secure Sockets Layer (SSL).

Опционально для SAP HANA.

Имя базы данных

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

Требуется для SQL Server, PostgreSQL и Snowflake. Необязательно для SAP HANA.

Название склада

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

Требуется для Снежинки.

Имя схемы или имя набора данных

Схема по умолчанию (Snowflake) или набор данных (BigQuery) для подключения к базе данных. Эта схема или набор данных используется для хранения временных таблиц, созданных во время рабочих процессов анализа для соединений чтения-записи. Если схема или набор данных не выбраны или если у пользователя нет разрешений на чтение и запись для схемы или набора данных, подключение к базе данных будет доступно только для чтения.

Необязательно для Snowflake и BigQuery.

Столбцы индекса

Insights создаст индекс для таблиц базы данных для определенных функций с использованием баз данных Oracle, SQL Server или PostgreSQL для повышения производительности. Для баз данных Oracle и SQL Server индексирование может выполняться только в том случае, если пользователь, создающий соединение с базой данных, имеет необходимые привилегии базы данных. После создания соединения индексы будут созданы для таблиц базы данных независимо от того, кто использует их в Insights.

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

В следующей таблице описано, как индексирование будет выполняться для каждого типа базы данных, а также привилегии, необходимые для создания соединения, в котором выполняется индексирование: Тип индекса Требуемые привилегии SAP HANA

Индексирование не завершено в Insights для баз данных SAP HANA.

Неприменимо

Неприменимо

Oracle

Индексирование происходит в следующих ситуациях:

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

Неуникальный

Подключайтесь и просматривайте содержимое с кэшированием данных.

Один из следующих:

  • Пользователь является владельцем таблицы.
  • Владелец таблицы предоставил пользователю привилегию CREATE INDEX ON.
    SQL Server

    Индексирование происходит в следующих случаях:

    • К набору данных применяется фильтр.
    • Связь создана с набором данных.
    • Обогатить Данные используются в наборе данных.
    • Местоположение включено в наборе данных, в том числе с помощью результатов пространственного анализа.

    Неуникальный

    Подключайтесь и просматривайте содержимое с кэшированием данных.

    PostgreSQL

    Индексирование происходит в следующих случаях:

    • К набору данных применяется фильтр.
    • Связь создана с набором данных.
    • График временных рядов создан.

    Неуникальный

    Подключайтесь и просматривайте содержимое с кэшированием данных.

    Snowflake

    Индексирование в базах данных Insights for Snowflake не завершено.

    Неприменимо

    Неприменимо

    BigQuery

    Индексирование не завершено в Insights для баз данных BigQuery.

    Неприменимо

    Неприменимо

    Пространственные типы

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

    90 092
    Database Supported default spatial types
    SAP HANA
    • ST_Geometry
    Oracle
    • Oracle Spatial
    • Esri Geodatabase
    SQL Server
    • Геометрия
    PostgreSQL
    • Геометрия PostGIS
    • База геоданных Esri
    • Нет
    Снежинка
    • География
    BigQuery
    • География

    Пространственные типы SDELOB не поддерживаются.

    Ресурсы

    Дополнительные сведения о создании и устранении неполадок многопользовательских баз геоданных в Oracle см. в разделе Базы геоданных в Oracle.

    Дополнительные сведения о создании многопользовательских баз геоданных и устранении неполадок в Microsoft SQL Server см. в разделе Базы геоданных в Microsoft SQL Server.

    Дополнительные сведения о создании многопользовательских баз геоданных и устранении неполадок в PostgreSQL см. в разделе Базы геоданных в PostgreSQL.

    Следующие шаги

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


    Отзыв по этой теме?

    java — прямое соединение с базой данных на http-запрос и пул соединений — в чем разница

    спросил

    Изменено 5 лет, 11 месяцев назад

    Просмотрено 3к раз

    Допустим, я храню данные Person(id, country_id, name) . И скажем, пользователь только что отправил идентификатор и country_id, и мы отправляем обратно имя.

    Теперь у меня есть один db и 2 веб-сервера, и каждый веб-сервер поддерживает пул соединений (например, c3p0) из 20 соединений.

    Это означает, что БД поддерживает 40 подключений, а каждый веб-сервер поддерживает 20 подключений.

    Анализируя приведенную выше систему, мы видим, что мы использовали пул соединений, потому что люди говорят, что «создание соединения с базой данных стоит дорого»

    Все это имеет смысл 200 дБ, также при условии, что наше приложение сейчас популярно, и нам нужно иметь 50 веб-серверов.
    Теперь описанная выше стратегия создания пула соединений терпит неудачу, как если бы каждый веб-сервер хранил 20 соединений в пуле для каждой базы данных.

    , это означает, что каждый веб-сервер будет иметь 20 * 200 дБ = 4000 подключений
    , а каждый БД будет иметь 50 веб-серверов * 20 = 1000 подключений.

    Звучит не очень хорошо, поэтому у меня возник вопрос: зачем использовать пул соединений, каковы накладные расходы на создание 1 соединения для каждого веб-запроса?

    Итак, я запускаю тест, в котором я увидел, что DriverManager. getConnection() занимает в среднем 20 мс на локальном хосте.

    Дополнительные 20 мс на запрос не убивают игру

    Вопрос 1: Есть ли другой недостаток использования 1 подключения на веб-запрос?

    Вопрос 2: Люди во всем Интернете говорят, что «связь с базой данных стоит дорого». Какие разные расходы?


    PS: я также вижу, что Pinterest делает то же самое https://medium.com/@Pinterest_Engineering/sharding-pinterest-how-we-scaled-our-mysql-fleet-3f341e96ca6f

    • java
    • база данных
    • post gresql
    • пул соединений
    • сегментирование
    2

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

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

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

    В традиционных монолитных серверах приложений, таких как Weblogic, JBoss, WebSphere и т. д., его системный администратор создаст пул соединений в соответствии с емкостью сервера базы данных и передаст имя JNDI разработчикам для использования. Задача разработчика состоит в том, чтобы получить соединение только с использованием этого JNDI. .

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

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

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

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

    4

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

    Измеренные вами 20 мс относятся к соединению localhost . Я не думаю, что все ваши 50 веб-серверов будут находиться на localhost

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