<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Microsoft Russia ISV Team</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/isv_team/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/isv_team/feed.xml</link>
    <description>Приветствуем Вас в блоге группы российского представительства Microsoft по работе с компаниями-разработчиками (isvrus@microsoft.com)</description>
    <lastBuildDate>Fri, 04 Mar 2016 03:46:48 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Работа с SQL Server в сценариях гибридного Облака</title>
      <link>https://docs.microsoft.com/archive/blogs/isv_team/sql-server-1</link>
      <pubDate>Wed, 30 Oct 2013 03:21:40 GMT</pubDate>
      <dc:creator><![CDATA[isvrus]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/isv_team/2013/10/30/sql-server-1/</guid>
      <description><![CDATA[Гибридное Облако является достаточно привлекательной моделью при внедрении облачных вычислений в...]]></description>
      <content:encoded><![CDATA[ <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Гибридное Облако является достаточно привлекательной моделью при внедрении облачных вычислений в информационные системы предприятий, поскольку этот подход сочетает преимущества публичного и частного облака. С одной стороны, достигаются возможности гибкого привлечения внешних ресурсов по мере надобности и сокращения инфраструктурных издержек, с другой - сохраняется полный контроль за данными и приложениями, которые предприятие не хочет отдавать наружу. Однако в подобном сценарии мы неизбежно сталкиваемся с задачей интеграции данных из различных источников. Предположим, имеется таблица клиентов, которую мы вертикально разбили на две части. Обезличенная часть была отнесена в публичное облако, а персонифицирующая клиентов информация осталась в локальной базе. Для целостной обработки внутри приложения необходимо снова соединить обе части по <span lang="EN-US" style="mso-ansi-language: en-us;">CustomerID</span>. Возможны различные способы это сделать. Условно их можно разбить на две большие категории: объединение данных на уровне <span lang="EN-US" style="mso-ansi-language: en-us;">on</span>-<span lang="EN-US" style="mso-ansi-language: en-us;">premise</span><span lang="EN-US"> </span>сервера БД, который в этом случае будет выступать единой точкой входа для доступа к локальным и удаленным данным, и внутри бизнес-логики. В этой статье будет рассмотрен первый подход.</font><span style="mso-spacerun: yes;"><font style="font-size: 11pt;">&#160; </font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">В случае <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span><span lang="EN-US"> </span>для доступа к гетерогенным источникам данных, начиная с версии 7.0, традиционно используется механизм связанных серверов (<span lang="EN-US" style="mso-ansi-language: en-us;">linked</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">servers</span>). Используя этот механизм, нам нужно получить данные из облачной базы. Как известно, в облаке <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span>база данных <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span><span lang="EN-US"> </span>может быть представлена в двух ипостасях: <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Database</span> (<span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>) - это <span lang="EN-US" style="mso-ansi-language: en-us;">PaaS</span>-решение - и как обычная база данных на обычном <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span>, установленном на размещенной в <span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span>виртуальной машине - <span lang="EN-US" style="mso-ansi-language: en-us;">IaaS</span>. Последний случай идейно ничем не отличается от соединения с другим экземпляром <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span>. Создание связанного сервера на него не составляет труда и давно &lt;<span lang="EN-US" style="mso-ansi-language: en-us;">a</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">href</span>=&quot;<a style="cursor: auto;" href="https://technet.microsoft.com/ru-ru/library/ff772782.aspx">https://technet.microsoft.com/ru-ru/library/ff772782.aspx</a>&quot;&gt;описано в документации&lt;/<span lang="EN-US" style="mso-ansi-language: en-us;">a</span>&gt;. Разберем случай создания связанного сервера на <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>. На самом деле, соединение с облачной базой ничуть не сложнее, чем присоединиться к обычному <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span>; необходимо только не упускать из вида спцифику <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>:</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">- Используется строго сетевая библиотека <span lang="EN-US" style="mso-ansi-language: en-us;">TCP</span>/<span lang="EN-US" style="mso-ansi-language: en-us;">IP</span>, порт не назначается динамически, он всегда 1433.</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">- В <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span> действует только стандартная модель аутентификации.</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">- Все соединения с <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span> в обязательном порядке шифруются на основе <span lang="EN-US" style="mso-ansi-language: en-us;">TLS</span> (<span lang="EN-US" style="mso-ansi-language: en-us;">SSL</span>), что соответствует добавлению в строку соединения свойств <span lang="EN-US" style="mso-ansi-language: en-us;">Encrypt</span>=<span lang="EN-US" style="mso-ansi-language: en-us;">True</span>;<span lang="EN-US" style="mso-ansi-language: en-us;">TrustServerCertificate</span>=<span lang="EN-US" style="mso-ansi-language: en-us;">true</span>. Их можно не указывать в явном виде, они будут добавлены автоматически.</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">- Имя сервера = &lt;имя сервера SQL Azure&gt;.database.windows.net.</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">- В SQL Azure нет команды USE. Строго говоря, она есть, но применяется сугубо в случае шардинга, что означает, что необходимо соединяться сразу с нужной базой. </font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">- Также необходимо учитывать firewall rules в конфигурации сервера SQL Azure, которые оговаривают белый список диапазона адресов, с которых разрешается устанавливать соединение.</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Принимая сказанное в учет, остается выбрать прикладной интерфейс доступа, в качестве которого может использоваться <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Native</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Client</span>, либо <span lang="EN-US" style="mso-ansi-language: en-us;">ODBC</span>.</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Для выполнения демонстрационного примера используется облачный вариант модельной базы данных <span lang="EN-US" style="mso-ansi-language: en-us;">AdventureWorks</span>2012, взять которую можно &lt;<span lang="EN-US" style="mso-ansi-language: en-us;">a</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">href</span>=&quot;<a style="cursor: auto;" href="https://msftdbprodsamples.codeplex.com/releases/view/37304">https://msftdbprodsamples.codeplex.com/releases/view/37304</a>&quot;&gt;здесь&lt;/<span lang="EN-US" style="mso-ansi-language: en-us;">a</span>&gt;.</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Открываем <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Management</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Studio</span>, соединяемся с локальным <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span><span lang="EN-US"> </span>и создаем на нем связанный сервер на <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>, используя нативного клиента:</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">if</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exists</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">(</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">select</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> 1 </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">from</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">sys</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">servers</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">where</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">name</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_NCli'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">)</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">sp_dropserver</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><span style="mso-spacerun: yes;">&#160; </span></span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@server</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_NCli'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@droplogins</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 11pt;">'droplogins'</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">go</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">sp_addlinkedserver</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@server</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_NCli'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;"> </font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@srvproduct</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">''</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><span style="mso-spacerun: yes;"><font style="font-size: 12pt;">&#160;&#160;&#160;&#160; </font></span></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@provider</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'sqlncli'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;"> </font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@datasrc</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'u1qgtaf85k.database.windows.net'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><span style="mso-spacerun: yes;"><font style="font-size: 12pt;">&#160;&#160; </font></span></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@location</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">''</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">,</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@provstr</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">''</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">,</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@catalog</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'AdventureWorks2012'</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;"> </font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">go</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">sp_addlinkedsrvlogin</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@rmtsrvname</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_NCli'</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">,</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@useself</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'false'</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">,</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@rmtuser</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'alexejs'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><span style="mso-spacerun: yes;"><font style="font-size: 12pt;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </font></span></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@rmtpassword</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'Password'</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;"> </font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">go</span></font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 1</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">где <span lang="EN-US" style="mso-ansi-language: en-us;">u</span>1<span lang="EN-US" style="mso-ansi-language: en-us;">qgtaf</span>85<span lang="EN-US" style="mso-ansi-language: en-us;">k</span>- имя сервера <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>, которое было сгенерировано автоматически при его создании. Тестируем, что мы действительно можем с ним соединиться со стороны локального сервера и получить с него данные:</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p style="margin: 6pt 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">select</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">CustomerID</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">AccountNumber</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">from</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">SQLAzure_NCli</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">AdventureWorks2012</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">Sales</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">Customer</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">where</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">CustomerID</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">between</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> 1 </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">and</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> 100</span></font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 2</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Результат показан на Рис.1</font></p>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6406.clip_image002_7F08565D.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6406.clip_5F00_image002_5F00_7F08565D.jpg"><img title="clip_image002" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0268.clip_image002_thumb_32D2DD60.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0268.clip_5F00_image002_5F00_thumb_5F00_32D2DD60.jpg" width="912" height="534" /></a></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.1</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Обладая соответствующими правами, можно со стороны локального сервера выполнять не только чтение данных <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>, но и запросы на модификацию данных, а также <span lang="EN-US" style="mso-ansi-language: en-us;">DDL</span>-запросы. Например, создадим в БД <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span>таблицу и вставим в нее данные:</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">sp_serveroption</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_NCli'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'rpc out'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">true</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">(</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'CREATE TABLE TestTbl(fld1 int not null CONSTRAINT PK_fld1 PRIMARY KEY CLUSTERED (fld1) )'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">)</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">at</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">SQLAzure_Ncli</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">(</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'INSERT INTO TestTbl VALUES (1), (2), (3)'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">)</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">at</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">SQLAzure_NCli</span></font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 3</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 12pt;">&#160;</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/3288.clip_image004_242AC22C.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/3288.clip_5F00_image004_5F00_242AC22C.jpg"><img title="clip_image004" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image004" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2068.clip_image004_thumb_7C86D6B2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2068.clip_5F00_image004_5F00_thumb_5F00_7C86D6B2.jpg" width="853" height="469" /></a></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.2</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">С помощью <span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Management</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Portal</span><span lang="EN-US"> </span>можно убедиться, что таблица действительно создалась и записи в нее добавились:</font></p>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span style="mso-no-proof: yes;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1263.clip_image006_4400D7FA.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1263.clip_5F00_image006_5F00_4400D7FA.jpg"><img title="clip_image006" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image006" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5047.clip_image006_thumb_35C4EFBB.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5047.clip_5F00_image006_5F00_thumb_5F00_35C4EFBB.jpg" width="636" height="537" /></a></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.3</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Создание связанного сервера через <span lang="EN-US" style="mso-ansi-language: en-us;">ODBC</span><span lang="EN-US"> </span>требует предварительного создания <span lang="EN-US" style="mso-ansi-language: en-us;">DSN</span>. Идем в <span lang="EN-US" style="mso-ansi-language: en-us;">Control</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Panel</span>\<span lang="EN-US" style="mso-ansi-language: en-us;">System</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">and</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Security</span>\<span lang="EN-US" style="mso-ansi-language: en-us;">Administrative</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Tools</span> -&gt; <span lang="EN-US" style="mso-ansi-language: en-us;">Data</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Sources</span> (<span lang="EN-US" style="mso-ansi-language: en-us;">ODBC</span>) или просто запускаем <span lang="EN-US" style="mso-ansi-language: en-us;">odbcad</span>32.<span lang="EN-US" style="mso-ansi-language: en-us;">exe</span><span lang="EN-US"> </span>и создаем источник данных на <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>, как показано на Рис.4 - .</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span style="mso-no-proof: yes;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2335.clip_image008_5980A806.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2335.clip_5F00_image008_5F00_5980A806.jpg"><img title="clip_image008" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image008" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6862.clip_image008_thumb_727F08FC.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6862.clip_5F00_image008_5F00_thumb_5F00_727F08FC.jpg" width="569" height="407" /></a></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.4</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span style="mso-no-proof: yes;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0535.clip_image010_6F0308C3.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0535.clip_5F00_image010_5F00_6F0308C3.jpg"><img title="clip_image010" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image010" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/7245.clip_image010_thumb_173541D6.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/7245.clip_5F00_image010_5F00_thumb_5F00_173541D6.jpg" width="493" height="324" /></a></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.5</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span style="mso-no-proof: yes;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/7217.clip_image012_02465014.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/7217.clip_5F00_image012_5F00_02465014.jpg"><img title="clip_image012" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image012" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1385.clip_image012_thumb_663821D9.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1385.clip_5F00_image012_5F00_thumb_5F00_663821D9.jpg" width="495" height="325" /></a></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.6</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span style="mso-no-proof: yes;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/4382.clip_image014_6A45005C.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/4382.clip_5F00_image014_5F00_6A45005C.jpg"><img title="clip_image014" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image014" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2678.clip_image014_thumb_03436153.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2678.clip_5F00_image014_5F00_thumb_5F00_03436153.jpg" width="495" height="244" /></a></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.7</font><span style="mso-ansi-language: en-us;"><font style="font-size: 11pt;"> </font><span lang="EN-US"></span></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 12pt;">&#160;</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0574.clip_image016_204C101B.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0574.clip_5F00_image016_5F00_204C101B.jpg"><img title="clip_image016" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image016" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/3247.clip_image016_thumb_766B9BE5.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/3247.clip_5F00_image016_5F00_thumb_5F00_766B9BE5.jpg" width="498" height="327" /></a></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.8</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5353.clip_image018_338F576B.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5353.clip_5F00_image018_5F00_338F576B.jpg"><img title="clip_image018" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image018" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/8764.clip_image018_thumb_379C35EE.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/8764.clip_5F00_image018_5F00_thumb_5F00_379C35EE.jpg" width="498" height="327" /></a></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.9</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Можно автоматизировать процесс импортом в реестр (<span lang="EN-US" style="mso-ansi-language: en-us;">regedit</span>.<span lang="EN-US" style="mso-ansi-language: en-us;">exe</span>) примерно такого .<span lang="EN-US" style="mso-ansi-language: en-us;">REG</span>-файла: </font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;">&lt;code&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI]</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><span style="mso-spacerun: yes;"><font style="font-size: 11pt;">&#160;</font></span></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;">[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\SQLAzure]</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;">&quot;Driver&quot;=&quot;C:\\Windows\\system32\\sqlncli10.dll&quot;</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;">&quot;Server&quot;=&quot;u1qgtaf85k.database.windows.net&quot;</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;">&quot;LastUser&quot;=“alexejs&quot;</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;">&quot;Database&quot;=“AdventureWorks2012&quot;</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><span style="mso-spacerun: yes;"><font style="font-size: 11pt;">&#160;</font></span></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;">[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources]</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;">“SQLAzure&quot;=&quot;SQL Server Native Client 10.0“&lt;/code&gt;</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 4</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Создание связанного сервера на <span lang="EN-US" style="mso-ansi-language: en-us;">ODBC</span>-источник в этом случае будет выглядеть следующим образом:</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">if</font></span><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exists</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">(</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">select</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> 1 </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">from</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">sys</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">servers</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">where</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">name</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_ODBC'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">)</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">sp_dropserver</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><span style="mso-spacerun: yes;">&#160; </span></span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@server</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_ODBC'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@droplogins</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">'droplogins‘</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">go</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">sp_addlinkedserver</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@server</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_ODBC'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@srvproduct</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'Any'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@provider</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'MSDASQL'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@datasrc</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@catalog</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">'AdventureWorks2012'</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">go</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">exec</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">sp_addlinkedsrvlogin</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@rmtsrvname</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'SQLAzure_ODBC'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@useself</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'false'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@rmtuser</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'alexejs'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">@rmtpassword</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">'Password'</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 5</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Проверяем, что все работает: </font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p style="margin: 0cm 0cm 0pt; line-height: 11pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">select</font></span><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">*</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">from</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">openquery</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">(</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">SQLAzure_ODBC</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'select * from sys.tables'</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">)</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 6</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0207.clip_image020_0292376F.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0207.clip_5F00_image020_5F00_0292376F.jpg"><img title="clip_image020" style="margin: 0px; border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image020" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0741.clip_image020_thumb_36C8F166.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0741.clip_5F00_image020_5F00_thumb_5F00_36C8F166.jpg" width="789" height="490" /></a></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.10</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Независимо от способа создания прилинкованного сервера дальнейшее очевидно. Связываем таблицу клиентов в БД на локальном сервере с таблицей клиентов в БД <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>:</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p style="margin: 6pt 0cm 0pt; line-height: 11pt; list-style-type: disc;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">select</font></span><font style="font-size: 12pt;"><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">c</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">CustomerID</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">c</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">AccountNumber</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">p</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">FirstName</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">p</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">LastName</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">from</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">openquery</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">(</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">SQLAzure_NCli</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">,</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">'select CustomerID, AccountNumber from Sales.Customer where CustomerID <b>between 1 and 100</b>'</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">)</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">c</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">join</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">Person</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">Person</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">p</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">on</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">c</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">CustomerID</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">=</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">p</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">BusinessEntityID</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">order</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">by</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"> </span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">c</span><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;">.</span></font><span lang="EN-US" style="mso-ansi-language: en-us; mso-fareast-font-family: &quot;Times New Roman&quot;; mso-fareast-theme-font: minor-fareast; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-font-kerning: 12.0pt;"><font style="font-size: 12pt;">CustomerID</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 7</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/4846.clip_image022_5A1876BC.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/4846.clip_5F00_image022_5F00_5A1876BC.jpg"><img title="clip_image022" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="clip_image022" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0005.clip_image022_thumb_6061DDFB.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0005.clip_5F00_image022_5F00_thumb_5F00_6061DDFB.jpg" width="846" height="525" /></a></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.11</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 12pt;">&#160;</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNoSpacing" style="margin: 0cm 0cm 0pt; list-style-type: disc;"><font style="font-size: 11pt;">Следует отметить, что, как всегда в случае связанного сервера, предпочтительней использовать функцию <span lang="EN-US" style="mso-ansi-language: en-us;">OpenQuery</span>(), чем обращаться к нему по имени с 4-частной нотацией, чтобы не тащить на локальный сервер максимальный рекордсет, а по возможности распараллелить работу, производя фильтрацию (джойны, группировки и т.д., если будут) средствами удаленных ресурсов.</font></p> <font style="font-size: 12pt;"></font>]]></content:encoded>
    </item>
    <item>
      <title>Введение в разработку и тестирование приложений в Облаке</title>
      <link>https://docs.microsoft.com/archive/blogs/isv_team/33</link>
      <pubDate>Tue, 13 Aug 2013 00:25:57 GMT</pubDate>
      <dc:creator><![CDATA[isvrus]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/isv_team/2013/08/13/33/</guid>
      <description><![CDATA[В начале июня 2013 на конференции TechEd (Северная Америка) член технического совета Microsoft и...]]></description>
      <content:encoded><![CDATA[<font style="font-size: 12pt;"></font><font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">В начале июня 2013 на конференции <span lang="EN-US" style="mso-ansi-language: en-us;">TechEd</span> (Северная Америка) член технического совета Microsoft и ведущий специалист компании по разработке направления ALM Брайан Харри анонсировал Visual Studio 2013 и Team Foundation Server 2013 совместно с .</font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Net Framework 4.5.1. Несколько недель спустя на конференции Build 2013 в Сан-Франциско было объявлено о доступности предварительных версий этих продуктов. Помимо многочисленных улучшений среды разработки, возможностей создания приложений </font></span><span style="mso-fareast-language: ru;"><font style="font-size: 11pt;">для любых устройств на базе Windows, в том числе в системе Windows 8.1, веб-приложений и служб для локальных и облачных сред с использованием новых дополнений к Visual Studio и ASP.NET, которые упрощают веб-разработку для различных браузеров и устройств, гибкого управления портфелями проектов, взаимодействия в режиме реального времени, а также упрощения доступа к нужной информации прямо из редактора кода, </font></span><font style="font-size: 11pt;">Visual Studio 2013 является законченным инструментом для разработки, диагностики и отладки приложений в Облаке. </font></p> <font style="font-size: 12pt;"></font><font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Данная статья является первой в цикле, который позволит начинающим разработчикам получить представление о создании с нуля приложений для <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span>и их развертывании при помощи Visual Studio 2013 Preview, тестировании и управлении в облачных средах. Для работы нам потребуется, собственно, Visual Studio 2013 Preview и подписка на <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>. Установить бесплатно предварительную версию Visual Studio 2013 Preview можно с <a style="cursor: auto;" href="https://www.microsoft.com/visualstudio/rus/2013-downloads">центра загрузки <span lang="EN-US" style="mso-ansi-language: en-us;">Microsoft</span></a>. Там доступно несколько редакций, нам потребуется редакция <span lang="EN-US" style="mso-ansi-language: en-us;">Ultimate</span>. После установки можно видеть шаблон проекта для создания приложений в Облаке.</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/7802.image001_3070ECFD.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/7802.image001_5F00_3070ECFD.png"><img title="image001" style="display: inline; background-image: none;" border="0" alt="image001" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1588.image001_thumb_0EA5146C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1588.image001_5F00_thumb_5F00_0EA5146C.png" width="504" height="346" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.1</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Изначально этот шаблон пустой. Он требует установки <span lang="EN-US" style="mso-ansi-language: en-us;"><a style="cursor: auto;" href="https://weblogs.asp.net/scottgu/archive/2013/07/31/announcing-the-release-of-the-windows-azure-sdk-2-1-for-net.aspx">Windows<span style="mso-ansi-language: ru;"></span>Azure<span style="mso-ansi-language: ru;"></span>SDK<span style="mso-ansi-language: ru;"></span><span lang="RU" style="mso-ansi-language: ru;">2.1</span></a></span><span lang="EN-US"> </span>для <span lang="EN-US" style="mso-ansi-language: en-us;">VS</span>2013, который также может работать с <span lang="EN-US" style="mso-ansi-language: en-us;">VS</span>2012 и 2010 <span lang="EN-US" style="mso-ansi-language: en-us;">SP</span>1. При открытии нового проекта этого типа установка начнется автоматически. Как и другие дополнительные инструменты, как, например, <span lang="EN-US" style="mso-ansi-language: en-us;">SQL</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Server</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Data</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Tools</span>, по умолчанию установка происходит через <span lang="EN-US" style="mso-ansi-language: en-us;">Web</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Platform</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Installer</span>. Логично предположить, что машина разработчика, на которой будет происходить создание облачных приложений, имеет выход в Интернет. Однако известны ситуации, когда разработка и тестирование производится локально, а размещение в Облаке осуществляется с нескольких выделенных машин в подразделении. В этом случае на локальную машину следует установить<span style="mso-spacerun: yes;">&#160; </span>Windows Azure SDK «вручную» в соответствии с <a style="cursor: auto;" href="https://www.microsoft.com/en-us/download/details.aspx?id=39708">инструкцией</a> (см.раздел <span lang="EN-US" style="mso-ansi-language: en-us;">Install</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Instructions</span>). Системные пререквизиты указаны там же в разделе <span lang="EN-US" style="mso-ansi-language: en-us;">System</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Requirements</span>. Скачать по отдельности <span lang="EN-US" style="mso-ansi-language: en-us;">WindowsAzureAuthoringTools</span>-<span lang="EN-US" style="mso-ansi-language: en-us;">x</span>64.<span lang="EN-US" style="mso-ansi-language: en-us;">msi</span>, <span lang="EN-US" style="mso-ansi-language: en-us;">WindowsAzureEmulator</span>-<span lang="EN-US" style="mso-ansi-language: en-us;">x</span>64.<span lang="EN-US" style="mso-ansi-language: en-us;">exe</span>, <span lang="EN-US" style="mso-ansi-language: en-us;">WindowsAzureTools</span>.<span lang="EN-US" style="mso-ansi-language: en-us;">vs</span>120.<span lang="EN-US" style="mso-ansi-language: en-us;">exe</span> и другие компоненты можно <a style="cursor: auto;" href="https://www.microsoft.com.nsatc.net/downloads/en/details.aspx?FamilyID=284812b4-a956-40f5-8b01-9385f89319e2">здесь</a>. <span style="mso-spacerun: yes;">&#160; </span></font><span style="mso-spacerun: yes;"><font style="font-size: 11pt;">&#160;</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">После установки Windows Azure SDK надпись <span lang="EN-US" style="mso-ansi-language: en-us;">Get</span> Windows Azure SDK в шаблоне проекта (Рис.1) сменяется на <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Cloud</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Service</span>. В создаваемое приложение добавим <span lang="EN-US" style="mso-ansi-language: en-us;">ASP</span>.<span lang="EN-US" style="mso-ansi-language: en-us;">NET</span><span lang="EN-US"> </span>веб-роль:</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2133.image002_6CD93BDA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2133.image002_5F00_6CD93BDA.png"><img title="image002" style="display: inline; background-image: none;" border="0" alt="image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/7652.image002_thumb_445A59C6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/7652.image002_5F00_thumb_5F00_445A59C6.png" width="442" height="256" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.2</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">а в нее – веб-форму по умолчанию:</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5545.image003_3B8A517A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5545.image003_5F00_3B8A517A.png"><img title="image003" style="display: inline; background-image: none;" border="0" alt="image003" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/4428.image003_thumb_72F062A8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/4428.image003_5F00_thumb_5F00_72F062A8.png" width="444" height="277" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.3</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Для рассмотрения дальнейшего процесса локального тестирования приложения и его размещения в Облаке нужно создать простейший пользовательский код, который можно позаимствовать, например, <a style="cursor: auto;" href="https://msdn.microsoft.com/ru-ru/library/windowsazure/ff687127.aspx">здесь</a>:</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0753.image004_264C2605.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0753.image004_5F00_264C2605.png"><img title="image004" style="display: inline; background-image: none;" border="0" alt="image004" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6153.image004_thumb_44B666EE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6153.image004_5F00_thumb_5F00_44B666EE.png" width="381" height="345" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.4</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">По умолчанию запуск осуществляется в локальном эмуляторе <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span>, установленном в составе <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">SDK</span>. Если в системе включен <span lang="EN-US" style="mso-ansi-language: en-us;">User Access Control, </span>будет выдано сообщение</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/3364.image005_54E22EE7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/3364.image005_5F00_54E22EE7.png"><img title="image005" style="display: inline; background-image: none;" border="0" alt="image005" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5873.image005_thumb_41C1023B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5873.image005_5F00_thumb_5F00_41C1023B.png" width="358" height="157" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.5</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Чтобы запустить <span lang="EN-US" style="mso-ansi-language: en-us;">Visual</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Studio</span><span lang="EN-US"> </span>с административными привилегиями, зайдите в каталог, где она установлена. В <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span> 8 найдите на стартовом экране иконку <span lang="EN-US" style="mso-ansi-language: en-us;">Visual</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Studio</span>, щелкните по ней правой кнопкой и в нижней строке меню выберите <span lang="EN-US" style="mso-ansi-language: en-us;">Run</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">as</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">administrator</span>.</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/8468.image006_128F16A4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/8468.image006_5F00_128F16A4.png"><img title="image006" style="display: inline; background-image: none;" border="0" alt="image006" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0871.image006_thumb_70C33E12.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0871.image006_5F00_thumb_5F00_70C33E12.png" width="461" height="185" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.6</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Либо кликните по пункту меню <span lang="EN-US" style="mso-ansi-language: en-us;">Open</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">file</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">location</span>, в обозревателе войдите в свойства ярлыка <span lang="EN-US" style="mso-ansi-language: en-us;">Visual</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Studio</span> 2013 <span lang="EN-US" style="mso-ansi-language: en-us;">Preview</span>, нажмите на кнопку <span lang="EN-US" style="mso-ansi-language: en-us;">Advanced</span> и отметьте галку <span lang="EN-US" style="mso-ansi-language: en-us;">Run</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">as</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">administrator</span>:</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/4135.image007_48445BFE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/4135.image007_5F00_48445BFE.png"><img title="image007" style="display: inline; background-image: none;" border="0" alt="image007" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5460.image007_thumb_553E3C0F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5460.image007_5F00_thumb_5F00_553E3C0F.png" width="321" height="246" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.7</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Перезапустите <span lang="EN-US" style="mso-ansi-language: en-us;">Visual</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Studio</span>, откройте снова ранее созданное приложение и стартуйте его.</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/7563.image008_25A01D83.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/7563.image008_5F00_25A01D83.png"><img title="image008" style="display: inline; background-image: none;" border="0" alt="image008" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2313.image008_thumb_@109A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2313.image008_5F00_thumb_5F00_4000109A.png" width="359" height="227" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.8</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Кликните на кнопку <span lang="EN-US" style="mso-ansi-language: en-us;">Button</span>. В обработчике события нажатия на эту кнопку сработает ранее добавленное туда создание блоба в <span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Storage</span><span lang="EN-US"> </span>и строка кода для отладки</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">var</font></span><font style="font-size: 9.5pt;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"> storageAccount = </span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">CloudStorageAccount</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">.Parse(</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">RoleEnvironment</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">.GetConfigurationSettingValue(</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">&quot;Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString&quot;</span></font><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">));</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">var</font></span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;"> blobClient = storageAccount.CreateCloudBlobClient();</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">var</font></span><font style="font-size: 9.5pt;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"> blobContainer = blobClient.GetContainerReference(</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">&quot;testblob&quot;</span></font><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">);</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">blobContainer.CreateIfNotExists();</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">var</font></span><font style="font-size: 9.5pt;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"> blob = blobContainer.GetBlockBlobReference(</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">Guid</span></font><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">.NewGuid().ToString());</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">blob.UploadFromStream(</font></span><font style="font-size: 9.5pt;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">new</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"> </span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">MemoryStream</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">(</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">Encoding</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">.UTF8.GetBytes(</span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">&quot;Hello Windows Azure&quot;</span></font><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">)));</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">System.Diagnostics.</font></span><font style="font-size: 9.5pt;"><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">Trace</span><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">.WriteLine(</span><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">&quot;Added blob to Windows Azure Storage&quot;</span></font><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">);</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"><font style="font-size: 11pt;"> </font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 1</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">В окне <span lang="EN-US" style="mso-ansi-language: en-us;">Output</span><span lang="EN-US"> </span>мы увидим соответствующую надпись.</font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Кроме того в целях тестирования наша процедура </font><span style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-highlight: white;"><font style="font-size: 9.5pt;">Button1_Click</font></span><font style="font-size: 11pt;"> содержит настройку монитора диагностики для передачи в другой блоб журналов с определенной периодичностью, в данном случае – каждые полминуты. </font></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">DiagnosticMonitorConfiguration</font></span><font style="font-size: 9.5pt;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"> diag = </span><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">DiagnosticMonitor</span></font><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">.GetDefaultInitialConfiguration();</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 0pt; line-height: normal; list-style-type: disc; mso-layout-grid-align: none;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">diag.Logs.ScheduledTransferPeriod = </font></span><font style="font-size: 9.5pt;"><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">TimeSpan</span></font><span lang="EN-US" style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">.FromSeconds(30);</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">DiagnosticMonitor</font></span><font style="font-size: 9.5pt;"><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">.Start(</span><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;">&quot;Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString&quot;</span></font><span lang="EN-US" style="line-height: 10pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us; mso-highlight: white;"><font style="font-size: 9.5pt;">, diag);</font></span><span lang="EN-US" style="mso-ansi-language: en-us;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Скрипт 2</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Остановим приложение из <span lang="EN-US" style="mso-ansi-language: en-us;">VS</span><span lang="EN-US"> </span>или закрыв окно браузера. Откройте <span lang="EN-US" style="mso-ansi-language: en-us;">Server</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Explorer</span>. Обратите внимание, что эмулятор <span lang="EN-US" style="mso-ansi-language: en-us;">Windows</span><span lang="EN-US"> </span><span lang="EN-US" style="mso-ansi-language: en-us;">Azure</span><span lang="EN-US"> </span>содержит два блобовских контейнера в разделе <span lang="EN-US" style="mso-ansi-language: en-us;">Storage</span>\<span lang="EN-US" style="mso-ansi-language: en-us;">Blobs</span>. Первый – это созданный нами <span lang="EN-US" style="mso-ansi-language: en-us;">testblob</span> (Скрипт 1). Второй – <span lang="EN-US" style="mso-ansi-language: en-us;">wad</span>-<span lang="EN-US" style="mso-ansi-language: en-us;">control</span>-<span lang="EN-US" style="mso-ansi-language: en-us;">container</span> – контейнер, который создался для записи журналов при помощи монитора диагностики (Скрипт 2). </font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2262.image009_6993DBCD.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2262.image009_5F00_6993DBCD.png"><img title="image009" style="display: inline; background-image: none;" border="0" alt="image009" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/8883.image009_thumb_35EB6F6F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/8883.image009_5F00_thumb_5F00_35EB6F6F.png" width="545" height="293" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.9</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;"></font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Дважды кликнув по контейнеру <span lang="EN-US" style="mso-ansi-language: en-us;">testblob</span>, можно видеть, что он содержит блобы с именами гуидов, созданные (Скрипт 1) всякий раз при запуске приложения и нажатию кнопки <span lang="EN-US" style="mso-ansi-language: en-us;">Button</span><span lang="EN-US"> </span>на веб-странице (Рис.8).</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2021.image010_65C61130.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2021.image010_5F00_65C61130.png"><img title="image010" style="display: inline; background-image: none;" border="0" alt="image010" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6663.image010_thumb_710F256D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6663.image010_5F00_thumb_5F00_710F256D.png" width="586" height="179" /></a></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">Рис.10 </font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Двойной клик по каждой из строчек открывает содержимое соответствующего блоба в окне, допустим, </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">IE</span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">. Там лежит трассировочная строка </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Hello</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Windows</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Azure</span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">.</font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Второй контейнер содержит журналы </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Windows</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Azure</span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">, собранные при помощи монитора диагностики:</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 10pt;"></font><font style="font-size: 10pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0702.image011_683F1D21.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0702.image011_5F00_683F1D21.png"><img title="image011" style="display: inline; background-image: none;" border="0" alt="image011" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6445.image011_thumb_7E4588B3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6445.image011_5F00_thumb_5F00_7E4588B3.png" width="595" height="191" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.11</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Каждый блоб также можно открыть в браузере и прочитать сохраненный в тот или иной момент времени журнал:</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5808.image012_3BF27070.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5808.image012_5F00_3BF27070.png"><img title="image012" style="display: inline; background-image: none;" border="0" alt="image012" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/4375.image012_thumb_682EF754.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/4375.image012_5F00_thumb_5F00_682EF754.png" width="591" height="390" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.12</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Убедившись в работоспособности приложения, перейдем к его размещению и запуске в Облаке. Предварительно для запуска веб-ролей в среде Windows Azure.понадобится создать облачную службу, для чего заходим на портал управления Windows Azure, нажимаем значок + в левом нижнем углу и в появившемся меню выбираем </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Cloud</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Service</span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">. Опция </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Custom</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Create</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">позволяет сразу же опубликовать облачную службу, указав файл конфигурации (CSCFG), пакет (CSPKG) и сертификат. Поскольку мы собираемся публиковать приложение из проекта </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Visual</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Studio</span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">, нам будет достаточно опции </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Quick</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Create</span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">. В этом случае нужно только придумать название службы и задать датацентр, в котором она будет работать. Датацентр, как правило, выбирается из соображений минимизации стоимости трафика, который в пределах одного и того же датацентра бесплатный. Например, если наше приложение будет работать с базой данных </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">SQL</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Azure</span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">, созданной в датацентре </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">North</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Europe</span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">, то и службу имеет смысл размещать там же.</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2570.image013_26481206.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2570.image013_5F00_26481206.png"><img title="image013" style="display: inline; background-image: none;" border="0" alt="image013" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6354.image013_thumb_63F4F9C2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6354.image013_5F00_thumb_5F00_63F4F9C2.png" width="514" height="289" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.13</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Наше приложение использует учетную запись хранения, которая до этого эмулировалась средствами </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Windows</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Azure</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Tools</span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">, у</font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">становленными локально. Теперь ее потребуется создать в Облаке:</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6116.image014_5471E7F3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6116.image014_5F00_5471E7F3.png"><img title="image014" style="display: inline; background-image: none;" border="0" alt="image014" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6082.image014_thumb_4078555D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6082.image014_5F00_thumb_5F00_4078555D.png" width="517" height="290" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.14</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Остается перенастроить проект в </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Visual</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Studio</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">c</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">эмулятора на использование «честных» облачных службы и учетной записи хранения. Для этого в обозревателе решений в проекте Windows Azure выбираем Свойства роли, которая обращается к службам хранилища, и идем на закладку </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Settings</span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">. Сейчас строка соединения настроена на локальный эмулятор: UseDevelopmentStorage=true. </font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6038.image015_301CDDA4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6038.image015_5F00_301CDDA4.png"><img title="image015" style="display: inline; background-image: none;" border="0" alt="image015" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/8176.image015_thumb_29F59109.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/8176.image015_5F00_thumb_5F00_29F59109.png" width="584" height="151" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.15</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Требуется сослать ее в </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Azure</span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">. Самый простой способ это сделать, чтобы не вводить руками учетную запись и первичный ключ - кликнуть на многоточие справа и выбрать </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Download</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Publish</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Settings</span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">:</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6036.image016_73383604.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6036.image016_5F00_73383604.png"><img title="image016" style="display: inline; background-image: none;" border="0" alt="image016" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5228.image016_thumb_66CA12DB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5228.image016_5F00_thumb_5F00_66CA12DB.png" width="417" height="324" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.16</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Для текущей подписки будет скачан файл, позволяющий </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Visual</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Studio</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">автоматически получить вышеуказанные сведения. Он </font></span><font style="font-size: 11pt;">содержит сведения о сертификате</font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">, поэтому его следует сохранять в безопасное место. Этот файл мы указываем, нажав кнопку </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Import</span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">. </font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0334.image017_300CB7D7.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0334.image017_5F00_300CB7D7.png"><img title="image017" style="display: inline; background-image: none;" border="0" alt="image017" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/3021.image017_thumb_4D325FE1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/3021.image017_5F00_thumb_5F00_4D325FE1.png" width="441" height="268" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.17</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Приложение готово к публикации. Ее можно осуществить с портала управления </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Windows</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Azure</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;">путем создания пакета служб и файла конфигурации службы, либо напрямую из </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Visual</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Studio</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">при помощи мастера публикации. </font></span><font style="font-size: 11pt;">Для его запуска из контекстного меню проекта <span lang="EN" style="mso-ansi-language: en;">Windows</span><span lang="EN"> </span><span lang="EN" style="mso-ansi-language: en;">Azure</span><span lang="EN"> </span>выбираем пункт <span lang="EN-US" style="mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &quot;Times New Roman&quot;; mso-bidi-theme-font: minor-bidi; mso-ansi-language: en-us; mso-bidi-font-weight: bold;">Publish</span>.</font></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;">&#160;</p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6177.image018_5953DA08.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6177.image018_5F00_5953DA08.png"><img title="image018" style="display: inline; background-image: none;" border="0" alt="image018" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/8203.image018_thumb_3F1370E4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/8203.image018_5F00_thumb_5F00_3F1370E4.png" width="428" height="218" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.18</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Приложение успешно публикуется.</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/3264.image019_6187FF9F.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/3264.image019_5F00_6187FF9F.png"><img title="image019" style="display: inline; background-image: none;" border="0" alt="image019" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2146.image019_thumb_06A54A0C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2146.image019_5F00_thumb_5F00_06A54A0C.png" width="596" height="170" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.19</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Е</font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">сли теперь запустить его в облаке, указав адрес службы, созданной на Рис.13</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 11pt;"></font><font style="font-size: 11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/7875.image020_64D9717A.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/7875.image020_5F00_64D9717A.png"><img title="image020" style="display: inline; background-image: none;" border="0" alt="image020" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2045.image020_thumb_6328A5A6.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2045.image020_5F00_thumb_5F00_6328A5A6.png" width="426" height="257" /></a></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.20</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">диагностическая информация для целей тестирования (Рис.10-12) будет складываться в контейнер Рис.14 аналогично тому, как это </font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">происходило в случае эмулятора. Посмотреть собранную диагностику можно разными способами, в том числе через </font></span><font style="font-size: 10pt;"><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Server</span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"> </span><span lang="EN-US" style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-ansi-language: en-us;">Explorer</span></font><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">, как это делалось на Рис.9. Однако теперь он будет указывать в Облако, т.к. мы изменили конфигурацию проекта и строку соединения (Рис.15-17).</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box; mso-fareast-language: ru; mso-no-proof: yes;"><font style="font-size: 10pt;"></font></span><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><span style="mso-spacerun: yes;"><font style="font-size: 10pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1351.image021_55E21C93.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1351.image021_5F00_55E21C93.png"><img title="image021" style="display: inline; background-image: none;" border="0" alt="image021" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5516.image021_thumb_138F0450.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5516.image021_5F00_thumb_5F00_138F0450.png" width="579" height="239" /></a>&#160;</font></span></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">Рис.21</font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font size="2"></font></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;"></font></span></p>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><span style="line-height: 11pt; background-image: none; background-attachment: scroll; background-repeat: repeat; background-size: auto; background-origin: padding-box; background-clip: border-box;"><font style="font-size: 10pt;">В следующей статье мы поговорим об отладке и тестировании приложений непосредственно в Облаке. <span style="mso-spacerun: yes;">&#160;</span></font><span style="mso-spacerun: yes;"><font style="font-size: 10pt;">&#160;</font></span></span></p> <font style="font-size: 12pt;"></font>  <p class="MsoNormal" style="margin: 0cm 0cm 8pt; line-height: 12pt; list-style-type: disc;"><font style="font-size: 11pt;">&#160;</font></p> <font style="font-size: 12pt;"></font><font style="font-size: 12pt;"></font>]]></content:encoded>
    </item>
    <item>
      <title>MapReduce для обработки слабоструктурированных данных в HDInsight</title>
      <link>https://docs.microsoft.com/archive/blogs/isv_team/mapreduce-1088</link>
      <pubDate>Fri, 15 Mar 2013 00:27:00 GMT</pubDate>
      <dc:creator><![CDATA[isvrus]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/isv_team/2013/03/15/mapreduce-1088/</guid>
      <description><![CDATA[&#160;  В данном примере мы разберем создание и выполнение типового задания MapReduce в облачной...]]></description>
      <content:encoded><![CDATA[<h1>&#160;</h1>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">В данном примере мы разберем создание и выполнение типового задания </span>MapReduce<span style="mso-ansi-language: ru;"> <span lang="RU">в облачной реализации </span></span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">от </span></span>Microsoft<span lang="RU" style="mso-ansi-language: ru;">, которая носит название </span>HDInsight<span lang="RU" style="mso-ansi-language: ru;">.      <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">В </span><a href="https://blogs.technet.com/b/isv_team/archive/2012/12/29/3543062.aspx"><span lang="RU" style="mso-ansi-language: ru;">предыдущем примере</span></a><span lang="RU" style="mso-ansi-language: ru;"> мы создали 3-узловой кластер </span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">и загрузили абстрактный журнал слабоструктурированного формата, который сейчас предстоит обработать. Журнал представляет собой в общем случае большой (в нашем конкретном примере маленький, но на принципиальную демонстрацию идеи это не влияет) текстовый файл, содержащий строки с признаками TRACE, DEBUG, INFO, </span></span>WARN<span lang="RU" style="mso-ansi-language: ru;">, </span>ERROR<span lang="RU" style="mso-ansi-language: ru;">, FATAL. Наша элементарная задача будет состоять в том, чтобы подсчитать количество строк с каждым признаком, т.е. сколько раз возникала ситуация </span>WARN<span lang="RU" style="mso-ansi-language: ru;">, сколько </span>ERROR<span style="mso-ansi-language: ru;"> <span lang="RU">и т.д. Выражаясь в терминах </span></span>SQL<span lang="RU" style="mso-ansi-language: ru;">, нужно сделать </span>COUNT<span lang="RU" style="mso-ansi-language: ru;">() … </span>GROUP<span style="mso-ansi-language: ru;"> </span>BY<span style="mso-ansi-language: ru;"> <span lang="RU">по полю признака. Понятно, что поля как такового нет, поскольку файл представляет собой не табличку, а набор строк с текстовым описанием проблемы, в которых встречается подстрока с названием признака. Нужно пробежаться по всем строкам, выделить подстроку признака и просуммировать. Проще</span></span><span lang="RU"> </span><span lang="RU" style="mso-ansi-language: ru;">говоря</span>, <span lang="RU" style="mso-ansi-language: ru;">из</span><span lang="RU"> </span>    <p></p> </p>  <p class="MsoNoSpacing"><span style="mso-spacerun: yes;">&#160;</span>    <p></p> </p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">2012-02-03 18:35:34 SampleClass6 [INFO] everything normal for id 577725851     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">2012-02-03 18:35:34 SampleClass4 [FATAL] system problem at id 1991281254     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">2012-02-03 18:35:34 SampleClass3 [DEBUG] detail for id 1304807656     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">2012-02-03 18:35:34 SampleClass3 [WARN] missing id 423340895     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">2012-02-03 18:35:34 SampleClass5 [TRACE] verbose detail for id 2082654978     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">2012-02-03 18:35:34 SampleClass0 [ERROR] incorrect id<span style="mso-spacerun: yes;">&#160;</span>1886438513      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">...     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Скрипт</span> 1    <p></p> </p>  <p class="MsoNoSpacing">   <p>&#160;</p> </p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">требуется получить что-нибудь типа     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">[</span><span style="font-family: &quot;Courier New&quot;;">TRACE</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">] 10     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">[DEBUG] 20     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">[INFO]<span style="mso-spacerun: yes;">&#160; </span>30      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">[WARN]<span style="mso-spacerun: yes;">&#160; </span>555      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">[ERROR] 777     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">[FATAL] 1     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Скрипт 2     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Идея модели </span>MapReduce<span style="mso-ansi-language: ru;"> <span lang="RU">очень проста. При наличии распределенной системы, каковой является кластер </span></span>Hadoop<span lang="RU" style="mso-ansi-language: ru;">, общее задание разделяется (</span>Map<span lang="RU" style="mso-ansi-language: ru;">) на параллельные подзадания. Как отмечалось в предыдущем примере, подлежащий обработке при сохранении в файловую систему </span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">прозрачно для пользователя разбивается на фрагменты по узлам. Теоретически эти узлы могут быть распределены территориально, т.е. находиться в различных географических локациях. Чтобы минимизировать издержки, связанные с передачей данных между ЦОДами (или просто между отдельными узлами), </span></span>Hadoop<span lang="RU" style="mso-ansi-language: ru;"> учитывает территориальную близость данных - каждое подзадание работает со своим фрагментом данных. В нашем случае узлов в кластере всего 3, не до роскоши. Подзадания будут выполняться на тех же узлах, где лежат фрагменты данных. Результаты выполнения подзаданий затем агрегируются функциями </span>Reduce<span style="mso-ansi-language: ru;"> <span lang="RU">в единый результат, возвращаемый пользователю. Иными словами, каждый узел выдаст свой частный подрезультат, например, первый -       <p></p>     </span></span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing">[TRACE] 1   <p></p> </p>  <p class="MsoNoSpacing">[DEBUG] 2   <p></p> </p>  <p class="MsoNoSpacing">[INFO]<span style="mso-spacerun: yes;">&#160; </span>3    <p></p> </p>  <p class="MsoNoSpacing">...   <p></p> </p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Скрипт</span> 3    <p></p> </p>  <p class="MsoNoSpacing">   <p>&#160;</p> </p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">второй</span> -     <p></p> </p>  <p class="MsoNoSpacing">   <p>&#160;</p> </p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">[</span>TRACE<span lang="RU" style="mso-ansi-language: ru;">] 9     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">[</span>DEBUG<span lang="RU" style="mso-ansi-language: ru;">] 5     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">[</span>INFO<span lang="RU" style="mso-ansi-language: ru;">]<span style="mso-spacerun: yes;">&#160; </span>7      <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">...     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Скрипт 4     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">из которых в итоге будет составлен общий результат Скрипт 2. Это общая идея параллельной обработки, получившая реализацию в том числе в традиционных реляционных серверах баз данных (напр., </span>Oracle<span style="mso-ansi-language: ru;"> </span>RAC<span lang="RU" style="mso-ansi-language: ru;">, </span>Microsoft<span style="mso-ansi-language: ru;"> </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span style="mso-ansi-language: ru;"> </span>Parallel<span style="mso-ansi-language: ru;"> </span>Datawarehouse<span style="mso-ansi-language: ru;"> <span lang="RU">и т.д.) и облачных сервисах реляционной обработки данных (напр., федерированная БД в </span></span>Windows<span style="mso-ansi-language: ru;"> </span>Azure<span style="mso-ansi-language: ru;"> </span>SQL<span style="mso-ansi-language: ru;"> </span>Database<span lang="RU" style="mso-ansi-language: ru;">, ранее известная как шардинг в </span>SQL<span style="mso-ansi-language: ru;"> </span>Azure<span lang="RU" style="mso-ansi-language: ru;">). Но в данном случае мы имеем дело не с реляционным, а слабоструктурированным форматом входных данных, поэтому, вместо скриптов </span>SQL<span lang="RU" style="mso-ansi-language: ru;">, функции, выполняющие роль </span>Map<span lang="RU" style="mso-ansi-language: ru;"> / </span>Reduce<span style="mso-ansi-language: ru;"> <span lang="RU">нам придется написать самостоятельно. Идея </span></span>MapReduce<span style="mso-ansi-language: ru;"> </span><a href="https://ru.wikipedia.org/wiki/MapReduce#.Имеющиеся реализации"><span lang="RU" style="mso-ansi-language: ru;">реализована</span></a><span lang="RU" style="mso-ansi-language: ru;"> на различных языках. Например, в бесплатном проекте </span>Apache<span style="mso-ansi-language: ru;"> </span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">с открытым исходным кодом для этих целей используется </span></span>Java<span lang="RU" style="mso-ansi-language: ru;">. Поскольку </span>Microsoft<span style="mso-ansi-language: ru;"> </span>HDInsight<span style="mso-ansi-language: ru;"> <span lang="RU">совместим с </span></span>Apache<span style="mso-ansi-language: ru;"> </span>Hadoop<span lang="RU" style="mso-ansi-language: ru;">, мы также будем использовать язык </span>Java<span style="mso-ansi-language: ru;"> <span lang="RU">и пакет </span></span><a href="https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/package-summary.html"><span lang="RU" style="mso-ansi-language: ru;">org.apache.hadoop.mapreduce</span></a><span lang="RU" style="mso-ansi-language: ru;">.      <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Вначале реализуется класс </span>Map<span lang="RU" style="mso-ansi-language: ru;">, производный от </span>Mapper<span lang="RU" style="mso-ansi-language: ru;">. </span><a href="https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/Mapper.html"><span lang="RU" style="mso-ansi-language: ru;">Класс </span>Mapper</a><span style="mso-ansi-language: ru;"> <span lang="RU">преобразует исходный набор пар ключ/значение в промежуточный. В нашем случае входными значениями являются строки текстового файла журнала - параметр </span></span>value<span style="mso-ansi-language: ru;"> <span lang="RU">типа </span></span>Text<span style="mso-ansi-language: ru;"> <span lang="RU">метода </span></span>map<span lang="RU" style="mso-ansi-language: ru;">. Внутри метода в каждой </span>value<span style="mso-ansi-language: ru;"> <span lang="RU">ищем квадратные скобки, вытаскиваем то, что находится между ними, сравниваем с константным набором признаков, который в начале положили в переменную </span></span>pattern<span lang="RU" style="mso-ansi-language: ru;"> и, если соответствует (if(matcher.matches())), формируем выходную пару ключ-значение. Ключом является подстрока признака </span>TRACE<span lang="RU" style="mso-ansi-language: ru;"> / </span>DEBUG<span lang="RU" style="mso-ansi-language: ru;"> / … (текстовая переменная </span>logLevel<span lang="RU" style="mso-ansi-language: ru;">), а значением 1. Значение содержится в переменной accumulator типа IntWritable, которую мы инициализировали в конструкторе единицей. </span>IntWriteable<span style="mso-ansi-language: ru;"> <span lang="RU">является оберткой вокруг явовского типа </span></span>int<span lang="RU" style="mso-ansi-language: ru;">, имплементирующей интерфейс </span>Writable<span lang="RU" style="mso-ansi-language: ru;">. </span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">использует собственный формат сериализации. Эти единички мы будем складывать в функции </span></span>Reduce<span lang="RU" style="mso-ansi-language: ru;">, чтобы подсчитать число вхождений каждого признака. Промежуточные (выходные) значения группируются средой </span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">для каждого выходного ключа. На этапе маппинга можно выполнить предварительную агрегацию при помощи setCombinerClass, чтобы сократить данные. передаваемые в </span></span>Reducer<span lang="RU" style="mso-ansi-language: ru;">. В данном примере эта возможность не используется. Класс </span>Reporter<span style="mso-ansi-language: ru;"> <span lang="RU">(последний параметр метода </span></span>map<span lang="RU" style="mso-ansi-language: ru;">) предназначен для отображения статуса и прогресса выполнения, обновления счетчиков и т.п. В нашем простом примере он также не используется.      <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Класс </span>Reduce<span lang="RU" style="mso-ansi-language: ru;">, производный от </span>Reducer<span lang="RU" style="mso-ansi-language: ru;">, решает обратную задачу. Он собирает промежуточные результаты маппирования и агрегирует их, выполняя в данном случае пресловутый </span>COUNT<span lang="RU" style="mso-ansi-language: ru;">() значений, т.к. </span>GROUP<span style="mso-ansi-language: ru;"> </span>BY<span style="mso-ansi-language: ru;"> <span lang="RU">по ключам (включая сортировку) был выполнен в ходе маппирования. Входные типы (</span></span>Text<span lang="RU" style="mso-ansi-language: ru;">, </span>IntWritable<span lang="RU" style="mso-ansi-language: ru;">) для </span>Reduce<span style="mso-ansi-language: ru;"> <span lang="RU">должны соответствовать выходным от </span></span>Map<span lang="RU" style="mso-ansi-language: ru;">. В ходе слияния результатов на этапе </span>Reduce<span style="mso-ansi-language: ru;"> <span lang="RU">среда </span></span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">выполняет вторичную сортировку, поскольку результаты, полученные от различных мапперов могут иметь одинаковые ключи. Таким образом, входной результат для метода </span></span>Reduce<span style="mso-ansi-language: ru;"> <span lang="RU">представляет собой набор строк ключ - коллекция соответствующих ему значений. Например, одной из строк будет </span></span>TRACE<span lang="RU" style="mso-ansi-language: ru;"> (ключ) и коллекция из стольких единичек, сколько вхождений этого признака определил тот или иной экземпляр маппера. Нам остается пробежаться по коллекции и просуммировать единички в переменную </span>count<span lang="RU" style="mso-ansi-language: ru;">. В </span>OutputCollector<span style="mso-ansi-language: ru;"> <span lang="RU">записываем традиционную пару ключ-значение, только значением здесь будет результат агрегации по ключу.        <p></p>     </span></span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Метод </span>main<span lang="RU" style="mso-ansi-language: ru;">() используется для создания задания </span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">на основе созданных классов </span></span>Map<span style="mso-ansi-language: ru;"> <span lang="RU">и </span></span>Reduce<span style="mso-ansi-language: ru;"> <span lang="RU">и его выполнения. Объект JobConf формирует спецификацию задания. Код записывается в JAR-файл, который Hadoop будет распространять по кластеру. Вместо явного указания имени файла, можно передать объемлющий класс, содержащий выполняемый код, (</span></span>MapReduceTest<span lang="RU" style="mso-ansi-language: ru;">) в конструктор JobConf, по которому Hadoop найдет соответствующий JAR-файл. Методы setOutputKeyClass() и setOutputValueClass() задают выходные типы для функций </span>Map<span style="mso-ansi-language: ru;"> <span lang="RU">и </span></span>Reduce<span lang="RU" style="mso-ansi-language: ru;">. Как правило, они совпадают, т.е. </span>Map<span style="mso-ansi-language: ru;"> <span lang="RU">выдает то же, что </span></span>Reduce<span lang="RU" style="mso-ansi-language: ru;">. Если они отличаются, выходные типы функции </span>Map<span style="mso-ansi-language: ru;"> <span lang="RU">можно оговорить с помощью методов setMapOutputKeyClass() и setMapOutputValueClass(). Какой класс будет делать </span></span>Map<span lang="RU" style="mso-ansi-language: ru;">, а какой </span>Reduce<span lang="RU" style="mso-ansi-language: ru;">, как несложно догадаться, задается при помощи методов setMapperClass() и setReducerClass(). Осталось прописать формат ввода/вывода. Это делается методами setInputFormat() и setOutputFormat(). В данном случае этого можно было не делать, т.к. текстовый формат принят по умолчанию. В заключение нужно прописать пути к файлам с исходными данными и рзультатами при помощи статических методов FileInputFormat.setInputPaths() и FileOutputFormat.setOutputPath(). Мы будем передавать имена файлов через аргументы командной строки. Как видно из названия метода, входных файлов может быть несколько. Может быть директория, тогда будут взяты все содержащиеся в ней файлы. Можно указать шаблон имени файла. В качестве локации, куда будут складываться файлы результатов назначается директория. Она не должна существовать, иначе при выполнении произойдет ошибка. Своего рода мера защиты, чтобы одно задание не перетерло результат выполнения другого. Удалить директорию можно при помощи команды hadoop fs -rmr.      <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Собирая сказанное вместе, получаем следующий код:     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">//Стандартный явовский импорт     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import</span><span style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"> </span><span style="font-family: &quot;Courier New&quot;;">java</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">.</span><span style="font-family: &quot;Courier New&quot;;">io</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">.</span><span style="font-family: &quot;Courier New&quot;;">IOException</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import java.util.Iterator;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import java.util.regex.Matcher;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import java.util.regex.Pattern;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">//</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">Импорт</span><span style="font-family: &quot;Courier New&quot;;">, </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">относящийся</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">к</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span style="font-family: &quot;Courier New&quot;;">Hadoop     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.fs.Path;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.io.IntWritable;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.io.LongWritable;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.io.Text;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.FileInputFormat;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.FileOutputFormat;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.JobClient;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.JobConf;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.MapReduceBase;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.Mapper;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.OutputCollector;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.Reducer;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.Reporter;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.TextInputFormat;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">import org.apache.hadoop.mapred.TextOutputFormat;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">public class MapReduceTest     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">{     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">/*     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;</span>* </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">Маппирование</span><span style="font-family: &quot;Courier New&quot;;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;</span>*/      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>public static class Map extends MapReduceBase implements Mapper&lt;LongWritable, Text, Text, IntWritable&gt;      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>private static final Pattern pattern = Pattern.compile(&quot;(TRACE)|(DEBUG)|(INFO)|(WARN)|(ERROR)|(FATAL)&quot;); //</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">список</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">паттернов</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">признаков</span><span style="font-family: &quot;Courier New&quot;;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>private static final IntWritable accumulator = new IntWritable(1); //</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">константная</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">единичка</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">в</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">кач</span><span style="font-family: &quot;Courier New&quot;;">-</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">ве</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">значения</span><span style="font-family: &quot;Courier New&quot;;">, </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">если</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">признак</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">найден</span><span style="font-family: &quot;Courier New&quot;;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160; </span><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>private Text logLevel = new Text();      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>public void map(LongWritable key, Text value, OutputCollector&lt;Text, IntWritable&gt;collector, Reporter reporter)      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>throws</span><span style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"> </span><span style="font-family: &quot;Courier New&quot;;">IOException</span><span style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"> <span lang="RU">       <p></p>     </span></span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{<span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>// поиск по разделителям '[' и ']'      <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-family: &quot;Courier New&quot;;">final String[] tokens = value.toString().split(&quot;[ \\[\\]]&quot;);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>if(tokens != null)      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">вычленяем</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">признак</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span style="font-family: &quot;Courier New&quot;;">logLevel     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>for(final String token : tokens)       <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160; </span><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>final Matcher matcher = pattern.matcher(token);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>if(matcher.matches()) //</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">если</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">найден</span><span style="font-family: &quot;Courier New&quot;;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>logLevel.set(token);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>collector.collect(logLevel, accumulator); //</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">формируем</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">пары</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">ключ</span><span style="font-family: &quot;Courier New&quot;;">-</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">значение</span><span style="font-family: &quot;Courier New&quot;;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}<span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}<span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">/*     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;</span>* </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">Редуцирование</span><span style="font-family: &quot;Courier New&quot;;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;</span>*/      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>public static class Reduce extends MapReduceBase implements Reducer&lt;Text, IntWritable, Text, IntWritable&gt;      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>public void reduce(Text key, Iterator&lt;IntWritable&gt; values, OutputCollector&lt;Text, IntWritable&gt; collector, Reporter reporter) throws IOException      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">{     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-family: &quot;Courier New&quot;;">int</span><span style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"> </span><span style="font-family: &quot;Courier New&quot;;">count</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"> = 0;     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//агрегируем в </span><span style="font-family: &quot;Courier New&quot;;">count</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"> число вхождений признака     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160; </span><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-family: &quot;Courier New&quot;;">while(values.hasNext())     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{<span style="mso-spacerun: yes;">&#160; </span>count += values.next().get();<span style="mso-spacerun: yes;">&#160; </span>}      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>System.out.println(key +<span style="mso-spacerun: yes;">&#160;</span>&quot;\t&quot; + count);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>collector.collect(key, new IntWritable(count));      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">/*     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;</span>* </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">Создаем</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">задание</span><span style="font-family: &quot;Courier New&quot;;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;</span>*/      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">     <p>&#160;</p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>public static void main(String[] args) throws Exception      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">{     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//конфигурация джобы с назаначением объемлющего класса и классов, выполняющих </span><span style="font-family: &quot;Courier New&quot;;">Map</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">/</span><span style="font-family: &quot;Courier New&quot;;">Reduce</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-family: &quot;Courier New&quot;;">final JobConf conf = new JobConf(MapReduceTest.class);     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>conf.setOutputKeyClass(Text.class);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>conf.setOutputValueClass(IntWritable.class);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>conf.setMapperClass(Map.class);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>conf.setReducerClass(Reduce.class);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>conf.setInputFormat(TextInputFormat.class);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>conf.setOutputFormat(TextOutputFormat.class);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">//входные-выходные пути берутся из аргументов командной строки     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span style="font-family: &quot;Courier New&quot;;">FileInputFormat.setInputPaths(conf, new Path(args[0]));     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>FileOutputFormat.setOutputPath(conf, new Path(args[1]));      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>//</span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">выполняем</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">задание</span><span lang="RU" style="font-family: &quot;Courier New&quot;;"> </span><span style="font-family: &quot;Courier New&quot;;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>JobClient.runJob(conf);      <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;"><span style="mso-spacerun: yes;">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">}     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="font-family: &quot;Courier New&quot;; mso-ansi-language: ru;">}     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Скрипт 5      <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Зайдем на хадуповский кластер через </span>Remote<span style="mso-ansi-language: ru;"> </span>Desktop<span lang="RU" style="mso-ansi-language: ru;">, как показывалось в </span><a href="https://blogs.technet.com/b/isv_team/archive/2012/12/29/3543062.aspx"><span lang="RU" style="mso-ansi-language: ru;">предыдущей статье</span></a><span lang="RU" style="mso-ansi-language: ru;">, и сохраним этот код в файл </span>MapReduceTest<span lang="RU" style="mso-ansi-language: ru;">.</span>java<span lang="RU" style="mso-ansi-language: ru;">, скажем, в той же </span>d<span lang="RU" style="mso-ansi-language: ru;">:\</span>Temp<span lang="RU" style="mso-ansi-language: ru;">. Библиотеки поддержки </span>Java<span style="mso-ansi-language: ru;"> <span lang="RU">в </span></span>HDInsight<span style="mso-ansi-language: ru;"> <span lang="RU">находятся в C:\apps\java\bin. </span></span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">про это не знает. Имеет смысл зайти в окно командной строки </span></span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">(D:\Windows\system32\cmd.exe /k pushd &quot;c:\apps\dist\hadoop-1.1.0-SNAPSHOT&quot; &amp;&amp; &quot;c:\apps\dist\hadoop-1.1.0-SNAPSHOT\bin\hadoop.cmd&quot;, для удобства на рабочем столе </span></span>HDInsight<span style="mso-ansi-language: ru;"> <span lang="RU">имеется ярлык) и прописать этот путь в переменную окружения %</span></span>path<span lang="RU" style="mso-ansi-language: ru;">%:     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">set PATH=%PATH%;C:\apps\java\bin     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Скрипт 6     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Перейдем в директорию </span>d<span lang="RU" style="mso-ansi-language: ru;">:\</span>Temp<span style="mso-ansi-language: ru;"> <span lang="RU">и скомпилируем явовский файл в файлы класса байт-кода. Свитч -</span></span>encoding<span style="mso-ansi-language: ru;"> <span lang="RU">потребовался, поскольку я сохранил MapReduceTest.java в юникодовской кодировке.        <p></p>     </span></span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">javac -encoding UNICODE -classpath C:\apps\dist\hadoop-1.1.0-SNAPSHOT\hadoop-core-*.jar d:\Temp\MapReduceTest.java     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Скрипт</span> 7    <p></p> </p>  <p class="MsoNoSpacing">   <p></p> </p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">В</span><span lang="RU"> </span>d:\Temp <span lang="RU" style="mso-ansi-language: ru;">образовался</span><span lang="RU"> </span><span lang="RU" style="mso-ansi-language: ru;">файл</span> MapReduceTest.class <span lang="RU" style="mso-ansi-language: ru;">и</span><span lang="RU"> </span><span lang="RU" style="mso-ansi-language: ru;">файлы</span> MapReduceTest$Map.class <span lang="RU" style="mso-ansi-language: ru;">и</span> MapReduceTest$Reduce.class, <span lang="RU" style="mso-ansi-language: ru;">соответствующие</span><span lang="RU"> </span><span lang="RU" style="mso-ansi-language: ru;">аложенным</span><span lang="RU"> </span><span lang="RU" style="mso-ansi-language: ru;">классам</span>. <span lang="RU" style="mso-ansi-language: ru;">Построим сборку:     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNoSpacing"><span style="font-family: &quot;Courier New&quot;;">jar -cvf MapReduceTest.jar *.class     <p></p>   </span></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Скрипт 8     <p></p>   </span></p>  <p class="MsoNoSpacing"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0121.image_3B8AFD27.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0121.image_5F00_3B8AFD27.png"><img title="image" style="display: inline;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/6371.image_thumb_7937E4E3.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/6371.image_5F00_thumb_5F00_7937E4E3.png" width="640" height="319" /></a></p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">Рис.1</span>&#160;</p>  <p class="MsoNoSpacing"><span lang="RU" style="mso-ansi-language: ru;">По текущему пути </span>d<span lang="RU" style="mso-ansi-language: ru;">:\</span>Temp<span lang="RU" style="mso-ansi-language: ru;">образовался явовский архив MapReduceTest.jar.</span></p>  <p>&#160;<span style="font-family: &quot;Courier New&quot;;">hadoop jar MapReduceTest.jar MapReduceTest Sample1/input/Sample.log Sample1/output</span></p>  <p>&#160;<span lang="RU" style="mso-ansi-language: ru;">Скрипт 9</span></p>  <p>&#160;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2047.image_2F595D33.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2047.image_5F00_2F595D33.png"><img title="image" style="display: inline;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/5460.image_thumb_74258167.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/5460.image_5F00_thumb_5F00_74258167.png" width="642" height="320" /></a></p>  <p class="MsoNormal" style="margin-bottom: 0pt;"><span lang="RU" style="mso-ansi-language: ru;">Рис.2</span>&#160;</p>  <p class="MsoNormal" style="margin-bottom: 0pt;"><span lang="RU" style="mso-ansi-language: ru;">Здесь </span>Sample<span lang="RU" style="mso-ansi-language: ru;">1/</span>input<span lang="RU" style="mso-ansi-language: ru;">/</span>Sample<span lang="RU" style="mso-ansi-language: ru;">.</span>log<span lang="RU" style="mso-ansi-language: ru;"> - подлежащий обработке файл журнала, загруженный из локальной директории </span>d<span lang="RU" style="mso-ansi-language: ru;">:\</span>Temp<span style="mso-ansi-language: ru;"> <span lang="RU">в директорию </span></span>HDFS<span style="mso-ansi-language: ru;"> <span lang="RU">/</span></span>Sample<span lang="RU" style="mso-ansi-language: ru;">1/</span>Input<span style="mso-ansi-language: ru;"> <span lang="RU">- см. Рис.5 предыдущей статьи. В прошлый раз я забыл заострить внимание, что перед загрузкой необходимо в явном виде создать входную директорию </span></span>HDFS<span lang="RU" style="mso-ansi-language: ru;"> (</span>hadoopfs<span lang="RU" style="mso-ansi-language: ru;"> -</span>mkdirSample<span lang="RU" style="mso-ansi-language: ru;">1/</span>input<span lang="RU" style="mso-ansi-language: ru;">/) и только после этого класть в нее файл (hadoop fs -put d:\Temp\Sample.log Sample1/input/). Если попытаться загрузить файл без предварительного создания директории, она создается, но файл в нее не загружается, в чем можно убедиться hadoop fs -ls Sample1/input/.</span></p>  <p class="MsoNormal" style="margin-bottom: 0pt;"><span lang="RU" style="mso-ansi-language: ru;">Тем временем задание успешно отработало. В выходной директории </span>HDFSSample<span lang="RU" style="mso-ansi-language: ru;">1/</span>output<span style="mso-ansi-language: ru;"> <span lang="RU">образовался файл с результатами, содержащий число появлений каждого признака в журнале, как заказывали:</span></span>&#160;</p>  <p class="MsoNormal" style="margin-bottom: 0pt;"><span style="font-family: &quot;Courier New&quot;;">hadoop fs -cat Sample1/output/part-00000</span></p>  <p class="MsoNormal" style="margin-bottom: 0pt;"><span lang="RU" style="mso-ansi-language: ru;">Скрипт 10</span>&#160;</p>  <p class="MsoNormal" style="margin-bottom: 0pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/3463.image_75A69D7B.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/3463.image_5F00_75A69D7B.png"><img title="image" style="display: inline;" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1106.image_thumb_5A8DCE6D.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1106.image_5F00_thumb_5F00_5A8DCE6D.png" width="642" height="320" /></a></p>  <p class="MsoNormal" style="margin-bottom: 0pt;"><span lang="RU" style="mso-ansi-language: ru;">Рис.3</span></p>  <p class="MsoNormal" style="margin-bottom: 0pt;"><span lang="RU" style="mso-ansi-language: ru;"></span></p>  <p>   <br /><em>Алексей Шуленин</em></p>]]></content:encoded>
    </item>
    <item>
      <title>Создание резервной копии БД в Azure Storage</title>
      <link>https://docs.microsoft.com/archive/blogs/isv_team/azure-storage</link>
      <pubDate>Wed, 06 Mar 2013 22:37:05 GMT</pubDate>
      <dc:creator><![CDATA[isvrus]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/isv_team/2013/03/06/azure-storage/</guid>
      <description><![CDATA[&#160;     В предыдущих статьях по миграции в «облачный» SQL Server мы рассмотрели различные...]]></description>
      <content:encoded><![CDATA[<h1><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></h1>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">В предыдущих статьях по миграции в «облачный» </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span style="mso-ansi-language: ru;"> <span lang="RU">мы рассмотрели различные возможности передачи резервной копии базы в Облако. На всякий случай следует сразу напомнить, что речь идет о </span></span>IaaS<span lang="RU" style="mso-ansi-language: ru;">-подходе, т.е. развертывании </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span style="mso-ansi-language: ru;"> <span lang="RU">на виртуальной машине </span></span>Windows<span style="mso-ansi-language: ru;"> </span>Azure<span lang="RU" style="mso-ansi-language: ru;">. Альтернативный </span>PaaS<span lang="RU" style="mso-ansi-language: ru;">-подход принципиально отличен, т.к. </span>Windows<span style="mso-ansi-language: ru;"> </span>Azure<span style="mso-ansi-language: ru;"> </span>SQL<span style="mso-ansi-language: ru;"> </span>Database<span lang="RU" style="mso-ansi-language: ru;"> (</span>SQL<span style="mso-ansi-language: ru;"> </span>Azure<span lang="RU" style="mso-ansi-language: ru;">) не поддерживает функциональности в виде штатных команд </span>T<span lang="RU" style="mso-ansi-language: ru;">-</span>SQL<span style="mso-ansi-language: ru;"> </span>backup<span lang="RU" style="mso-ansi-language: ru;">/</span>restore<span lang="RU" style="mso-ansi-language: ru;">. Также нет возможности отсоединять и присоединять файлы БД (</span>detach<span lang="RU" style="mso-ansi-language: ru;">/</span>attach<span lang="RU" style="mso-ansi-language: ru;">). Там следует применять другие методы, такие, как </span>DAC<span lang="RU" style="mso-ansi-language: ru;">, </span>BCP<span lang="RU" style="mso-ansi-language: ru;">, </span>SSIS<span lang="RU" style="mso-ansi-language: ru;">, </span>SQL<span style="mso-ansi-language: ru;"> </span>Azure<span style="mso-ansi-language: ru;"> </span>Sync<span style="mso-ansi-language: ru;"> <span lang="RU">и т.д. В данной статье мы продолжаем обзор способов, относящихся к </span></span>IaaS<span lang="RU" style="mso-ansi-language: ru;">, и, коль скоро в нем нет проблемы сделать/поднять бэкап, основной рабочий момент состоит в том, чтобы оптимально передать резервную копию базы в Облако и обратно. В этом плане он ничем не отличается от загрузки или скачивания любого блоба в/из </span>Azure<span style="mso-ansi-language: ru;"> </span>Storage<span lang="RU" style="mso-ansi-language: ru;">. Нами были рассмотрены использование Blob Service REST API (</span><a href="https://msdn.microsoft.com/en-us/library/dd135733.aspx">http<span lang="RU" style="mso-ansi-language: ru;">://</span>msdn<span lang="RU" style="mso-ansi-language: ru;">.</span>microsoft<span lang="RU" style="mso-ansi-language: ru;">.</span>com<span lang="RU" style="mso-ansi-language: ru;">/</span>en<span lang="RU" style="mso-ansi-language: ru;">-</span>us<span lang="RU" style="mso-ansi-language: ru;">/</span>library<span lang="RU" style="mso-ansi-language: ru;">/</span>dd<span lang="RU" style="mso-ansi-language: ru;">135733.</span>aspx</a><span lang="RU" style="mso-ansi-language: ru;">), который является очень простым по своей идее, но достаточно кропотливым в реализации, поскольку требует аккуратно сформировать тело </span>PUT<span lang="RU" style="mso-ansi-language: ru;">-запроса. Упростить процесс позволяет обертка, предоставляемая </span>Azure<span style="mso-ansi-language: ru;"> </span>SDK<span style="mso-ansi-language: ru;"> <span lang="RU">(</span></span><a href="https://msdn.microsoft.com/en-us/library/dd179380.aspx">http<span lang="RU" style="mso-ansi-language: ru;">://</span>msdn<span lang="RU" style="mso-ansi-language: ru;">.</span>microsoft<span lang="RU" style="mso-ansi-language: ru;">.</span>com<span lang="RU" style="mso-ansi-language: ru;">/</span>en<span lang="RU" style="mso-ansi-language: ru;">-</span>us<span lang="RU" style="mso-ansi-language: ru;">/</span>library<span lang="RU" style="mso-ansi-language: ru;">/</span>dd<span lang="RU" style="mso-ansi-language: ru;">179380.</span>aspx</a><span lang="RU" style="mso-ansi-language: ru;">), который имеет в своем составе готовые классы, инкапсулирующие подготовительную работу, которую требуется выполнять вручную в случае использования «сырого» </span>REST<span style="mso-ansi-language: ru;"> </span>API<span lang="RU" style="mso-ansi-language: ru;">. Наконец, мы рассмотрели процесс передачи резервной копии на отдельном </span>vhd<span lang="RU" style="mso-ansi-language: ru;">-диске, который присоединяется к облачной виртуалке. С выходом Cumulative Update 2 к </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span lang="RU" style="mso-ansi-language: ru;"> 2012 SP1 этот процесс еще более упростился, т.к. теперь стало возможным создавать резервные копии базы непосредственно в </span>Azure<span style="mso-ansi-language: ru;"> </span>Storage<span style="mso-ansi-language: ru;"> <span lang="RU">с помощью штатных команд </span></span>T<span lang="RU" style="mso-ansi-language: ru;">-</span>SQL<span style="mso-ansi-language: ru;"> <span lang="RU">и, соответственно, восстанавливаться с них. Вся не относящаяся к функциональности </span></span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span style="mso-ansi-language: ru;"> <span lang="RU">служебная работа по передаче резервной копии в Облако встроена внутрь </span></span>T<span lang="RU" style="mso-ansi-language: ru;">-</span>SQL<span lang="RU" style="mso-ansi-language: ru;">ных команд. От нас потребуется только иметь учетную запись хранения (</span>Windows<span style="mso-ansi-language: ru;"> </span>Azure<span style="mso-ansi-language: ru;"> </span>Storage<span style="mso-ansi-language: ru;"> </span>Account<span lang="RU" style="mso-ansi-language: ru;">), которая будет использоваться для промежуточного хранения резервной копии. Процесс создания </span>storage<span style="mso-ansi-language: ru;"> </span>account<span style="mso-ansi-language: ru;"> <span lang="RU">мы разбирали в статье, посвященной Blob Service REST API (</span></span><a href="https://blogs.technet.com/b/isv_team/archive/2012/10/25/3528566.aspx"><span lang="RU" style="mso-ansi-language: ru;">https://blogs.technet.com/b/isv_team/archive/2012/10/25/3528566.aspx</span></a><span lang="RU" style="mso-ansi-language: ru;">) и сейчас не будем на этом подробно останавливаться. Напомню на всякий случай, что создавать его имеет смысл в том же датацентре, где находится виртуальная машина с </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span lang="RU" style="mso-ansi-language: ru;">, на которой предполагается восстановливать резервную копию, чтобы сэкономить на трафике между датацентрами. Например, в моем случае виртуальная машина </span>lvmtest<span lang="RU" style="mso-ansi-language: ru;">4 с экземпляром </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span style="mso-ansi-language: ru;"> <span lang="RU">по умолчанию, расположена в локации </span></span>North<span style="mso-ansi-language: ru;"> </span>Europe<span lang="RU" style="mso-ansi-language: ru;">. Там же будет создана учетная запись сториджа </span>tststorage<span style="mso-ansi-language: ru;"> <span lang="RU">для передачи бэкапа базы. Более подробно процесс создания описан в документации к </span></span>Windows<span style="mso-ansi-language: ru;"> </span>Azure<span lang="RU" style="mso-ansi-language: ru;"> (</span><a href="https://msdn.microsoft.com/en-us/library/windowsazure/gg433066.aspx">http<span lang="RU" style="mso-ansi-language: ru;">://</span>msdn<span lang="RU" style="mso-ansi-language: ru;">.</span>microsoft<span lang="RU" style="mso-ansi-language: ru;">.</span>com<span lang="RU" style="mso-ansi-language: ru;">/</span>en<span lang="RU" style="mso-ansi-language: ru;">-</span>us<span lang="RU" style="mso-ansi-language: ru;">/</span>library<span lang="RU" style="mso-ansi-language: ru;">/</span>windowsazure<span lang="RU" style="mso-ansi-language: ru;">/</span>gg<span lang="RU" style="mso-ansi-language: ru;">433066.</span>aspx</a><span lang="RU" style="mso-ansi-language: ru;">). Внутри эккаунта мы создадим контейнер </span>container<span lang="RU" style="mso-ansi-language: ru;">1 (заглавные буквы в названии контейнера не поддерживаются). В целях безопасности контейнер будет создан как </span>private<span lang="RU" style="mso-ansi-language: ru;">, что означает, что для доступа к его содержимому потребуется указывать </span>Access<span style="mso-ansi-language: ru;"> </span>Key<span lang="RU" style="mso-ansi-language: ru;"> (первичный или вторичный), посмотреть которые можно в свойствах </span>Storage<span style="mso-ansi-language: ru;"> </span>Account<span lang="RU" style="mso-ansi-language: ru;">.      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Из пререквизитов нам еще понадобится установленный на локальном </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span lang="RU" style="mso-ansi-language: ru;"> 2012 </span>CU<span lang="RU" style="mso-ansi-language: ru;">2 к </span>SP<span lang="RU" style="mso-ansi-language: ru;">1. Как водится, кумулятивные апдейты будут, скорее всего, включены в следующий сервис-пак, но на момент написания данной статьи требуется на </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span lang="RU" style="mso-ansi-language: ru;"> 2012 установить </span>Service<span style="mso-ansi-language: ru;"> </span>Pack<span lang="RU" style="mso-ansi-language: ru;"> 1 (если он еще не установлен) (</span><a href="https://www.microsoft.com/en-us/download/details.aspx?id=35575"><span lang="RU" style="mso-ansi-language: ru;">https://www.microsoft.com/en-us/download/details.aspx?id=35575</span></a><span lang="RU" style="mso-ansi-language: ru;">), а затем кумулятивный апдейт 2 к этому сервис-паку (https://support.microsoft.com/kb/2790947). Когда мы проходили этот вопрос на </span>Windows<span style="mso-ansi-language: ru;"> </span>Azure<span style="mso-ansi-language: ru;"> </span>Summit<span lang="RU" style="mso-ansi-language: ru;">, слушатели обратили внимание на фразу This service pack contains SQL Server 2012 Cumulative Update 1 (CU1) and Cumulative Update 2 (CU2), поэтому, наверно, лучше лишний раз уточнить. В ней речь идет про кумулятивные апдейты к “голому” </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span lang="RU" style="mso-ansi-language: ru;"> 2012. Нам нужен </span>CU<span lang="RU" style="mso-ansi-language: ru;">2 к </span>SP<span lang="RU" style="mso-ansi-language: ru;">1. По ссылке открывается форма, в форме отмечаем, какой именно файл нужен (я отметил все три) и указываем </span>e<span lang="RU" style="mso-ansi-language: ru;">-</span>mail<span lang="RU" style="mso-ansi-language: ru;">, на который буквально сразу приходит письмо от </span><a href="mailto:hotfix@microsoft.com"><span lang="RU" style="mso-ansi-language: ru;">hotfix@microsoft.com</span></a><span lang="RU" style="mso-ansi-language: ru;">, содержащее ссылки, откуда что брать. Для наших целей достаточно поставить SQLServer2012_SP1_CU2_2790947_11_0_3339_x64, чтобы select @@version была не ниже Microsoft SQL Server 2012 (SP1) - 11.0.3339.0 (X64), Jan 14 2013 19:02:10, </span>Build<span lang="RU" style="mso-ansi-language: ru;"> 9200.</span>    <p></p> </p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Чтобы локальный </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span style="mso-ansi-language: ru;"> <span lang="RU">смог доступиться до облачного сториджа, на нем предварительно нужно создать удостоверение (</span></span>credential<span lang="RU" style="mso-ansi-language: ru;">), в котором будут указаны название учетной записи сториджа и один из его ключей доступа (первичный или вторичный, без разницы). <span style="mso-spacerun: yes;">&#160;</span><span style="mso-spacerun: yes;">&#160;</span><span style="mso-spacerun: yes;">&#160; </span>      <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">if</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: gray;">exists</span><span style="color: blue;"> </span><span style="color: gray;">(</span><span style="color: blue;">select</span> 1 <span style="color: blue;">from</span> <span style="color: green;">sys</span><span style="color: gray;">.</span><span style="color: green;">credentials</span> <span style="color: blue;">where</span> <span style="color: teal;">name</span> <span style="color: gray;">=</span> <span style="color: red;">'SqlToAzureStorage'</span> <span style="color: gray;">and</span> <span style="color: teal;">credential_identity</span> <span style="color: gray;">=</span> <span style="color: red;">'tststorage'</span><span style="color: gray;">)</span> <span style="color: blue;">drop</span> <span style="color: blue;">credential</span> <span style="color: teal;">SqlToAzureStorage</span>      <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">CREATE</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: blue;">CREDENTIAL</span> <span style="color: teal;">SqlToAzureStorage</span>       <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">WITH</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: blue;">IDENTITY</span><span style="color: gray;">=</span> <span style="color: red;">'tststorage'</span> <span style="color: green;">--storage account </span>      <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: gray; font-family: consolas; font-size: 9.5pt;">,</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: blue;">SECRET</span> <span style="color: gray;">=</span> <span style="color: red;">'oY1AUn6/5/IWz8dfQJzidOVY8HRUKOz1k5MsSnV86xV46fEtQCAigC3Fd8Lgkn2fv6SotsRpZm6w2tRaQVAovw=='       <p></p>     </span></span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Скрипт</span> 1    <p></p> </p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Ключи доступа можно найти в управлении учетной записью сториджа в </span>Windows<span style="mso-ansi-language: ru;"> </span>Azure<span style="mso-ansi-language: ru;"> </span>Management<span style="mso-ansi-language: ru;"> </span>Portal<span lang="RU" style="mso-ansi-language: ru;">, если в верхнем меню выбрать пункт </span>Configure<span lang="RU" style="mso-ansi-language: ru;">, а в нижнем - </span>Manage<span style="mso-ansi-language: ru;"> </span>Keys<span lang="RU" style="mso-ansi-language: ru;">.     <p></p>   </span></p>  <p class="MsoNormal"><span style="mso-no-proof: yes;"><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" coordsize="21600,21600"><stroke joinstyle="miter"><formulas><f eqn="if lineDrawn pixelLineWidth 0"><f eqn="sum @0 1 0"><f eqn="sum 0 0 @1"><f eqn="prod @2 1 2"><f eqn="prod @3 21600 pixelWidth"><f eqn="prod @3 21600 pixelHeight"><f eqn="sum @0 0 1"><f eqn="prod @6 1 2"><f eqn="prod @7 21600 pixelWidth"><f eqn="sum @8 21600 0"><f eqn="prod @7 21600 pixelHeight"><f eqn="sum @10 21600 0"></f></f></f></f></f></f></f></f></f></f></f></f></formulas><path gradientshapeok="t"><lock aspectratio="t"></lock></path></stroke></shapetype><shape id="Picture_x0020_2" style="width: 484.2pt; height: 294pt; visibility: visible; mso-wrap-style: square;" type="#_x0000_t75"><imagedata src="file:///C:\Users\alexejs\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1055.image001_25DF8E19.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1055.image001_5F00_25DF8E19.png"><img title="image001" style="display: inline;" border="0" alt="image001" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2313.image001_thumb_0B32F200.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2313.image001_5F00_thumb_5F00_0B32F200.png" width="836" height="510" /></a> </imagedata></shape></span>    <p></p> </p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Рис.1     <p></p>   </span></p>  <p class="MsoNormal"><span style="mso-no-proof: yes;"><shape id="Picture_x0020_1" style="width: 318.6pt; height: 294pt; visibility: visible; mso-wrap-style: square;" type="#_x0000_t75"><imagedata src="file:///C:\Users\alexejs\AppData\Local\Temp\msohtmlclip1\01\clip_image002.png"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0285.image002_547596FB.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0285.image002_5F00_547596FB.png"><img title="image002" style="display: inline;" border="0" alt="image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/0726.image002_thumb_72DFD7E4.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/0726.image002_5F00_thumb_5F00_72DFD7E4.png" width="480" height="442" /></a> </imagedata></shape></span>    <p></p> </p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Рис</span>.2    <p></p> </p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Собственно, все. Создаем резевную копию любимой базы AdventureWorks в облачный сторидж.     <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">BACKUP</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: blue;">DATABASE</span> <span style="color: teal;">AdventureWorks2012</span>       <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">TO</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: teal;">URL</span> <span style="color: gray;">=</span> <span style="color: red;">'https://tststorage.blob.core.windows.net/container1/AdventureWorks2012.bak'</span>       <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">WITH</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: blue;">CREDENTIAL</span> <span style="color: gray;">=</span> <span style="color: red;">'SqlToAzureStorage'</span><span style="color: gray;">,</span> <span style="color: blue;">INIT</span><span style="color: gray;">,</span> <span style="color: green;">STATS</span> <span style="color: gray;">=</span> 10      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Скрипт 2     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Здесь все понятно. Строка </span>URL<span style="mso-ansi-language: ru;"> <span lang="RU">формируется по принципу &lt;имя учетной записи </span></span>Azure<span style="mso-ansi-language: ru;"> </span>Storage<span lang="RU" style="mso-ansi-language: ru;">&gt;. blob.core.windows.net/&lt;название контейнера&gt;/&lt;как будет называться файл бэкапа, созданный в этом контейнере&gt;'. Ее можно посмотреть в </span>Windows<span style="mso-ansi-language: ru;"> </span>Azure<span style="mso-ansi-language: ru;"> </span>Management<span style="mso-ansi-language: ru;"> </span>Portal<span style="mso-ansi-language: ru;"> <span lang="RU">в свойствах контейнера:       <p></p>     </span></span></p>  <p class="MsoNormal"><span style="mso-no-proof: yes;"><shape id="Picture_x0020_3" style="width: 484.2pt; height: 225.6pt; visibility: visible; mso-wrap-style: square;" type="#_x0000_t75"><imagedata src="file:///C:\Users\alexejs\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/3806.image003_114A18CE.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/3806.image003_5F00_114A18CE.png"><img title="image003" style="display: inline;" border="0" alt="image003" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1780.image003_thumb_6FEA7331.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1780.image003_5F00_thumb_5F00_6FEA7331.png" width="847" height="397" /></a> </imagedata></shape></span><span lang="RU" style="mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Рис.3      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Если </span>CU<span lang="RU" style="mso-ansi-language: ru;">2 к </span>SP<span lang="RU" style="mso-ansi-language: ru;">1 не установлен, при выполнении этой команды происходит ошибка Msg 155, Level 15, State 1, Line 2. '</span>URL<span lang="RU" style="mso-ansi-language: ru;">' </span>is<span style="mso-ansi-language: ru;"> </span>not<span style="mso-ansi-language: ru;"> </span>a recognized Device Type option. <span lang="RU" style="mso-ansi-language: ru;">Но</span><span lang="RU"> </span><span lang="RU" style="mso-ansi-language: ru;">мы</span><span lang="RU"> </span><span lang="RU" style="mso-ansi-language: ru;">его</span><span lang="RU"> </span><span lang="RU" style="mso-ansi-language: ru;">установили, поэтому все выполняется успешно.     <p></p>   </span></p>  <p class="MsoNormal"><span style="mso-no-proof: yes;"><shape id="Picture_x0020_4" style="width: 483.6pt; height: 276.6pt; visibility: visible; mso-wrap-style: square;" type="#_x0000_t75"><imagedata src="file:///C:\Users\alexejs\AppData\Local\Temp\msohtmlclip1\01\clip_image004.png"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/3617.image004_2346368E.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/3617.image004_5F00_2346368E.png"><img title="image004" style="display: inline;" border="0" alt="image004" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/8468.image004_thumb_1356F1CA.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/8468.image004_5F00_thumb_5F00_1356F1CA.png" width="850" height="487" /></a> </imagedata></shape></span>    <p></p> </p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Рис.4     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Если теперь зайти в контейнер </span>container<span lang="RU" style="mso-ansi-language: ru;">1 на Рис.3, мы увидим, что там создался бэкап AdventureWorks2012.bak.     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Комментарии:     <p></p>   </span></p>  <p class="MsoListParagraphCxSpFirst" style="text-indent: -18pt; mso-list: l0 level1 lfo1;"><span lang="RU" style="font-family: symbol; mso-ansi-language: ru; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol;"><span style="mso-list: ignore;">·<span style="font: 7pt/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span lang="RU" style="mso-ansi-language: ru;">Максимальный размер резервной копии не должен превышать 1 ТБ, что связано с ограничениями </span>Azure<span style="mso-ansi-language: ru;"> </span>Blob<span style="mso-ansi-language: ru;"> </span>Storage<span lang="RU" style="mso-ansi-language: ru;">.     <p></p>   </span></p>  <p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt; mso-list: l0 level1 lfo1;"><span lang="RU" style="font-family: symbol; mso-ansi-language: ru; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol;"><span style="mso-list: ignore;">·<span style="font: 7pt/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span lang="RU" style="mso-ansi-language: ru;">Поддерживается создание не только полной резервной копии базы, но и резервных копий журнала транзакций, файловых групп, дифференциальное резервное копирование, а также сжатие бэкапов.      <p></p>   </span></p>  <p class="MsoListParagraphCxSpMiddle" style="text-indent: -18pt; mso-list: l0 level1 lfo1;"><span lang="RU" style="font-family: symbol; mso-ansi-language: ru; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol;"><span style="mso-list: ignore;">·<span style="font: 7pt/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span lang="RU" style="mso-ansi-language: ru;">Если файл с таким именем уже существует в контейнере, произойдет ошибка. Чтобы его переписать, используйте опцию </span>FORMAT<span lang="RU" style="mso-ansi-language: ru;">.     <p></p>   </span></p>  <p class="MsoListParagraphCxSpLast" style="text-indent: -18pt; mso-list: l0 level1 lfo1;"><span lang="RU" style="font-family: symbol; mso-ansi-language: ru; mso-fareast-font-family: symbol; mso-bidi-font-family: symbol;"><span style="mso-list: ignore;">·<span style="font: 7pt/normal &quot;Times New Roman&quot;; font-size-adjust: none; font-stretch: normal;">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span lang="RU" style="mso-ansi-language: ru;">Из интерфейса </span>SSMS<span style="mso-ansi-language: ru;"> <span lang="RU">создание резервной копии базы в </span></span>Azure<span style="mso-ansi-language: ru;"> </span>Blob<span style="mso-ansi-language: ru;"> </span>Storage<span lang="RU" style="mso-ansi-language: ru;"> пока не поддерживается.     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Теперь заходим на облачную виртуалку с установленным на ней </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span lang="RU" style="mso-ansi-language: ru;">, создаем удостоверение (Скрипт 1) и совершенно симметрично восстанавливаем на ней базу из свежесозданного облачного бэкапа. Понятно, что на том </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span style="mso-ansi-language: ru;"> <span lang="RU">также должен стоять </span></span>SP<span lang="RU" style="mso-ansi-language: ru;">1 </span>CU<span lang="RU" style="mso-ansi-language: ru;">2.      <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">RESTORE</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: blue;">DATABASE</span> <span style="color: teal;">AdventureWorks2012</span>       <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">FROM</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: teal;">URL</span> <span style="color: gray;">=</span> <span style="color: red;">'https://tststorage.blob.core.windows.net/container1/AdventureWorks2012.bak'</span>       <p></p>   </span></p>  <p class="MsoNormal" style="line-height: normal; margin-bottom: 0pt; -ms-text-autospace:; mso-layout-grid-align: none;"><span style="color: blue; font-family: consolas; font-size: 9.5pt;">WITH</span><span style="font-family: consolas; font-size: 9.5pt;"> <span style="color: blue;">CREDENTIAL</span> <span style="color: gray;">=</span> <span style="color: red;">'SqlToAzureStorage'</span><span style="color: gray;">,</span> <span style="color: fuchsia;">REPLACE</span><span style="color: gray;">,</span> <span style="color: green;">STATS</span> <span style="color: gray;">=</span> 10       <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Скрипт 3     <p></p>   </span></p>  <p class="MsoNormal"><span style="mso-no-proof: yes;"><shape id="Picture_x0020_5" style="width: 484.8pt; height: 263.4pt; visibility: visible; mso-wrap-style: square;" type="#_x0000_t75"><imagedata src="file:///C:\Users\alexejs\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/4520.image005_10CDC00C.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/4520.image005_5F00_10CDC00C.png"><img title="image005" style="display: inline;" border="0" alt="image005" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/8625.image005_thumb_47C79E45.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/8625.image005_5F00_thumb_5F00_47C79E45.png" width="806" height="438" /></a> </imagedata></shape></span><span lang="RU" style="mso-ansi-language: ru;">     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Рис.5     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Аналогично можно делать в обратном направлении: создавать резервную копию в Облаке и поднимать ее на </span>on<span lang="RU" style="mso-ansi-language: ru;">-</span>premise<span style="mso-ansi-language: ru;"> </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span lang="RU" style="mso-ansi-language: ru;">, а также передавать базу между облачными или </span>on<span lang="RU" style="mso-ansi-language: ru;">-</span>premise<span style="mso-ansi-language: ru;"> <span lang="RU">машинами.</span></span></p>  <p class="MsoNormal"><span style="mso-ansi-language: ru;"><span lang="RU">       <p></p>     </span></span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;"><em>Алексей Шуленин</em></span>    <p></p> </p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></p>]]></content:encoded>
    </item>
    <item>
      <title>Эксклюзивный тренинг для выделенных партнеров Microsoft</title>
      <link>https://docs.microsoft.com/archive/blogs/isv_team/63</link>
      <pubDate>Tue, 29 Jan 2013 22:01:41 GMT</pubDate>
      <dc:creator><![CDATA[isvrus]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/isv_team/2013/01/29/63/</guid>
      <description><![CDATA[&#160;              Уважаемые партнеры!          Приглашаем Вас принять участие в hands-on тренинге,...]]></description>
      <content:encoded><![CDATA[<h1><span style="mso-ansi-language: ru;">&#160;<span lang="RU">       <p></p>     </span></span></h1>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Уважаемые партнеры!     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Приглашаем Вас принять участие в </span>hands<span lang="RU" style="mso-ansi-language: ru;">-</span>on<span style="mso-ansi-language: ru;"> <span lang="RU">тренинге, который поможет Вам добиться наилучшей совместимости ваших приложений с </span></span>Microsoft<span style="mso-ansi-language: ru;"> </span>SQL<span style="mso-ansi-language: ru;"> </span>Server<span lang="RU" style="mso-ansi-language: ru;"> 2012.     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Материалы этого двухдневного практического семинара помогут Вам научиться определять функциональные параметры и производительность Вашего приложения на используемой версии SQL Server (2005/2008/R2), а затем сравнивать эти же показатели приложения на SQL Server 2012. Опытные эксперты расскажут обо всех важных элементах обновления до SQL Server 2012 и о тестировании совместимости приложений.      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Возьмите с собой ноутбук, и Вы сможете попробовать выполнить эти действия с существующими приложениями в лабораторной среде, где эксперт сможет помочь Вам в любой момент.     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">Мероприятие пройдет 14-15 февраля по адресу: Москва, ул. Крылатская, д. 17, корп. 1, Бизнес-Парк «Крылатские холмы», переговорная Calypso. Тренинг проводится на английском языке. Участие бесплатное.     <p></p>   </span></p>  <h2><span lang="RU" style="mso-ansi-language: ru;">Программа тренинга.     <p></p>   </span></h2>  <h3><span lang="RU" style="mso-ansi-language: ru;">День 1      <p></p>   </span></h3>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">9:30 Регистрация     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">10:00 Приветствие и организационные вопросы     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">10:15 Презентация: Обзор практического семинара по совместимости приложений     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">10:45 Планирование обновления     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">12:00 Перерыв      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">12:15 Лабораторное занятие: Как связать и скопировать файлы воспроизведения на виртуальную машину клиента     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">12:30 Лабораторное занятие: Подготовка базового экземпляра SQL Server – имя экземпляра, уровень обновления, параметры сортировки     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">13:30 Обед      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">14:00 Презентация: Предложение по повышению ценности технологии     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">15:00 Презентация: Анатомия обновления     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">15:50 Лабораторное занятие: Установка механизма воспроизведения и восстановление базы данных до базового экземпляра     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">16:30 Перерыв      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">16:45 Презентация: Помощник по обновлению     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">17:15 Лабораторное занятие: Помощник по обновлению     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">17:45 Подведение промежуточных итогов, контрольная точка – конец дня 1      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">18:00 Окончание дня 1     <p></p>   </span></p>  <h3><span lang="RU" style="mso-ansi-language: ru;">День 2     <p></p>   </span></h3>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">9:30 Открытие дня 2     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">10:00 Обзор итогов предыдущего дня     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">10:15 Презентация: Тестирование совместимости приложений     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">10:45 Лабораторное занятие: Базовые испытания – воспроизведение событий в SQL Server 2005/2008/2008 R2     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">11:45 Лабораторное занятие: Обновление баз данных – на месте или параллельно     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">12:15 Перерыв      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">12:30 Лабораторное занятие: Тестирование совместимости приложений – воспроизведение в SQL Server 2012     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">13:30 Обед      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">14:00 Лабораторное занятие: Тестирование совместимости приложений – воспроизведение в SQL Server 2012 (продолжение)     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">15:00 Лабораторное занятие: Тестирование совместимости приложений – воспроизведение в SQL Server 2012 – уровень совместимости 11     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">16:00 Перерыв      <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">16:45 Лабораторное занятие: Тестирование совместимости приложений – воспроизведение в SQL Server 2012 – уровень совместимости 11 (продолжение)     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">17:45 Подведение итогов семинара, обзор результатов, обратная связь, дальнейшие действия     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">18:00 Лабораторное занятие: Удаление ваших данных     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">18:00 Окончание дня 2     <p></p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></p>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">ВНИМАНИЕ: требуется предварительная подготовка! Подробная информация будет предоставлена в электронном письме, подтверждающем регистрацию.     <p></p>   </span></p>  <div style="mso-element: frame; mso-element-frame-hspace: 1.35pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-element-top: .05pt; mso-height-rule: exactly;">   <table cellspacing="0" cellpadding="0" align="left" vspace="0" hspace="0"><tbody>       <tr>         <td style="padding: 0cm 1.35pt;" valign="top" align="left">           <p class="MsoNormal" style="line-height: 12pt; mso-element: frame; mso-element-frame-hspace: 1.35pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-element-top: .05pt; mso-height-rule: exactly;"><a href="https://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&amp;EventID=1032539992&amp;IO=t1XRonpfNxkGD5T6qwQhJQ%3d%3d"><span lang="RU" style="font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt; mso-ansi-language: ru;">РЕГИСТРАЦИЯ НА ТРЕНИНГ</span></a><span lang="RU" style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt; mso-ansi-language: ru;">               <p></p>             </span></p>            <p class="MsoNormal" style="mso-element: frame; mso-element-frame-hspace: 1.35pt; mso-element-wrap: around; mso-element-anchor-vertical: paragraph; mso-element-anchor-horizontal: column; mso-element-top: .05pt; mso-height-rule: exactly; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-line-height-alt: 0pt;"><i><span lang="RU" style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt; mso-ansi-language: ru;">* Для регистрации используется </span></i><i><span style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt;">Windows</span></i><i><span style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt; mso-ansi-language: ru;"> </span></i><i><span style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt;">Live</span></i><i><span style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt; mso-ansi-language: ru;"> </span></i><i><span style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt;">ID</span></i><i><span lang="RU" style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt; mso-ansi-language: ru;">.</span></i><span lang="RU" style="color: black; font-family: &quot;Segoe UI&quot;,&quot;sans-serif&quot;; font-size: 10pt; mso-ansi-language: ru;">                <p></p>             </span></p>         </td>       </tr>     </tbody></table> </div>  <p class="MsoNormal"><span lang="RU" style="mso-ansi-language: ru;">     <p>&#160;</p>   </span></p>]]></content:encoded>
    </item>
    <item>
      <title>Введение в HDInsight</title>
      <link>https://docs.microsoft.com/archive/blogs/isv_team/hdinsight</link>
      <pubDate>Sat, 29 Dec 2012 00:33:00 GMT</pubDate>
      <dc:creator><![CDATA[isvrus]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/isv_team/2012/12/29/hdinsight/</guid>
      <description><![CDATA[&nbsp;
HDInsightServicesforWindowsAzure - это сервис, позволяющий работать с кластером ApacheHadoop...]]></description>
      <content:encoded><![CDATA[<h1>&nbsp;</h1>
<p class="MsoNormal">HDInsightServicesforWindowsAzure<span style="mso-ansi-language: ru;" lang="RU"> - это сервис, позволяющий работать с кластером </span>ApacheHadoop<span style="mso-ansi-language: ru;" lang="RU"> в Облаке, предоставляющий программную среду для операций управления, анализа и отчетности по Большим Данным. Я не буду подробно останавливаться на возможностях<span style="mso-spacerun: yes;">&nbsp; </span></span>Hadoop<span style="mso-ansi-language: ru;" lang="RU">. Он был впервые представлен в 2005 г. в составе проекта </span>ApacheSoftwareFoundation<span style="mso-ansi-language: ru;" lang="RU"> и представляет собой программную платформу распределенной обработки значительных объемов данных. Скажем, петабайтный размер не является для нее препятствием. Платформа </span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">основана на распределенной файловой системе HDFS (Hadoop Distributed File System), реализованной на кластере </span></span>Hadoop<span style="mso-ansi-language: ru;" lang="RU">. В состав кластера входят узлы, хранящие фрагменты файлов (</span>DataNode<span style="mso-ansi-language: ru;" lang="RU">). Теоретически могут быть сотни и тысячи таких узлов, основанных на недорогих вычислительных платформах (</span>commodityhardware<span style="mso-ansi-language: ru;" lang="RU">) . Для обеспечения высокой надежности поддерживается избыточность путем создания копий фрагментов между узлами. Знаниями о том, на каком узле данных какая реплика лежит, обладает </span>NameNode<span style="mso-ansi-language: ru;" lang="RU">. Со стороны клиента это выглядит, как обычная древовидная файловая система. Сам </span>NameNode<span style="mso-ansi-language: ru;"> <span lang="RU">не выполняет основные операции ввода-вывода. Он лишь снабжает клиента метаданными о местоположении первичной реплики фрагмента. Репликация фрагментов осуществляется автоматически. В случае выхода из строя первичной реплики фрагмента одна из его вторичных реплик назначается первичной и на дополнительном узле также автоматически создается еще одна копия. Масштабируемость на значительные объемы данных достигается за счет параллельной обработки фрагментов. Исторически в разработке </span></span>GoogleLabs<span style="mso-ansi-language: ru;"> <span lang="RU">проект </span></span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">был ориентирован на задачи поиска и классификации Интернет-контента. Например, функция Map получает на вход набор данных и преобразует его в список пар ключ/значение. Функция </span></span>Reduce<span style="mso-ansi-language: ru;"> <span lang="RU">выполняет обратную операцию, сворачивая список путем группировки его по ключам. В целях распараллеливания может быть создано множество экземпляров таких функций, каждый обрабатывающий свой фрагмент. Узлы, на которых хранятся входные фрагменты файлов и запускаются обрабатывающие их экземпляры </span></span>MapReduce<span style="mso-ansi-language: ru;" lang="RU">, носят название </span>TaskTracker<span style="mso-ansi-language: ru;" lang="RU">, а координирующий экземпляры узел &ndash; </span>JobTracker<span style="mso-ansi-language: ru;" lang="RU">. Количество экземпляров определяется количеством и местоположением фрагментов. Помимо поисковых, под данный шаблон попадает множество иных типов задач обработки данных. Существуют построенные поверх </span>HDFS<span style="mso-ansi-language: ru;"> <span lang="RU">и </span></span>MapReduce<span style="mso-ansi-language: ru;"> <span lang="RU">проекты </span></span>Pig<span style="mso-ansi-language: ru;" lang="RU">, </span>Hive<span style="mso-ansi-language: ru;" lang="RU">, </span>Mahout<span style="mso-ansi-language: ru;" lang="RU">, </span>Pegasus<span style="mso-ansi-language: ru;"> <span lang="RU">и др., предоставляющие более высокий уровень абстракции и позволяющие решать задачи управления потоками данных, запросные, аналитические задачи, а также задачи отыскания скрытых закономерностей (</span></span>datamining<span style="mso-ansi-language: ru;" lang="RU">), характерные для хранилищ (</span>datawarehouses<span style="mso-ansi-language: ru;" lang="RU">), которые традиционно строятся на серверах управления базами данных, реляционной модели и того или иного диалекта языка запросов </span>SQL<span style="mso-ansi-language: ru;" lang="RU">. Взаимодействие не менее традиционно осуществляется при помощи </span>ODBC<span style="mso-ansi-language: ru;" lang="RU">-драйверов.</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="mso-ansi-language: ru;" lang="RU">Hа конференции Pass Summit 2011 в Сиэтле было объявлено о выпуске Hadoop Connector для </span>MicrosoftSQLServer<span style="mso-ansi-language: ru;" lang="RU">, облегчающего обмен данными между двумя системами. Кроме того, в партнерстве с компанией </span>HortonWorks<span style="mso-ansi-language: ru;"> <span lang="RU">в настоящее время предоставляется предварительная ознакомительная версия Windows Azure HDInsight Service и Microsoft HDInsight Server for Windows, </span></span><a href="https://www.microsoft.com/sqlserver/en/us/solutions-technologies/business-intelligence/big-data.aspx"><span style="mso-ansi-language: ru;" lang="RU">100%-совместимая</span></a><span style="mso-ansi-language: ru;" lang="RU"> с открытыми стандартами </span>ApacheHadoop<span style="mso-ansi-language: ru;" lang="RU">. Скачать </span>HDInsightServer<span style="mso-ansi-language: ru;"> <span lang="RU">под </span></span>Windows<span style="mso-ansi-language: ru;"> <span lang="RU">можно </span></span><a href="https://www.microsoft.com/web/gallery/install.aspx?appid=HDINSIGHT-PREVIEW"><span style="mso-ansi-language: ru;" lang="RU">здесь</span></a><span style="mso-ansi-language: ru;" lang="RU">. Чтобы попробовать HDInsight Service в Облаке, нужно зарегистрироваться на тестирование </span><a href="https://connect.microsoft.com/SQLServer/Survey/Survey.aspx?SurveyID=13697"><span style="mso-ansi-language: ru;" lang="RU">здесь</span></a><span style="mso-ansi-language: ru;" lang="RU">.</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="mso-ansi-language: ru;" lang="RU">В качестве пререквизитов необходимо иметь облачную учетную запись </span>Microsoft<span style="mso-ansi-language: ru;" lang="RU">. Эккаунты в рамках программ </span>MSDN<span style="mso-ansi-language: ru;" lang="RU">, </span>BizSpark<span style="mso-ansi-language: ru;" lang="RU">, </span>DreamSpark<span style="mso-ansi-language: ru;"> <span lang="RU">работают. В рамках предварительной версии доступно создать кластер </span></span>Hadoop<span style="mso-ansi-language: ru;"> <span lang="RU">из 3-х узлов с общим объемом дискового пространства 1.5 ТБ. Кластер будет жить 5 суток с момента создания. После этого вся конфигурация и содержимое будут потеряны, придется создавать заново. Из начальных данных требуется указать </span></span>DNS<span style="mso-ansi-language: ru;" lang="RU">-имя (оно, понятно, должно быть уникальным) и административный логин/пароль. Использование </span>WindowsAzureSQLDatabase<span style="mso-ansi-language: ru;"> <span lang="RU">для хранения метаданных нам на первых порах не понадобится, но на всякий случай обратите внимание, что такая возможность есть и база (в том случае, если вы захотите ей воспользоваться) должна быть создана заранее. Жмем на кнопку </span></span>RequestCluster<span style="mso-ansi-language: ru;"> <span lang="RU">в правой нижней части экрана:</span></span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="mso-no-proof: yes;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1212.image001_35BF90D1.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1212.image001_5F00_35BF90D1.png"><img style="display: inline;" title="image001" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/8156.image001_thumb_1B12F4B8.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/8156.image001_5F00_thumb_5F00_1B12F4B8.png" alt="image001" width="784" height="644" border="0" /></a> </span></p>
<p class="MsoNormal"><span style="mso-ansi-language: ru;" lang="RU">Рис.1</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="mso-ansi-language: ru;" lang="RU">Проходит несколько минут, и </span>ClusterStatus<span style="mso-ansi-language: ru;"> <span lang="RU">= </span></span>Deploying<span style="mso-ansi-language: ru;"> <span lang="RU">изменяется на </span></span>Running<span style="mso-ansi-language: ru;" lang="RU">, после чего его можно использовать.</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="mso-no-proof: yes;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1222.image002_79471C26.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/1222.image002_5F00_79471C26.png"><img style="display: inline;" title="image002" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/2476.image002_thumb_05D4C943.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-58-84-metablogapi/2476.image002_5F00_thumb_5F00_05D4C943.png" alt="image002" width="790" height="636" border="0" /></a> </span></p>
<p class="MsoNormal"><span style="mso-ansi-language: ru;" lang="RU">Рис</span>.2</p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="mso-ansi-language: ru;" lang="RU">Жмем</span><span style="mso-ansi-language: ru;" lang="RU">на</span><span style="mso-ansi-language: ru;" lang="RU">ссылку</span>Go to Cluster. <span style="mso-ansi-language: ru;" lang="RU">Из </span>Web<span style="mso-ansi-language: ru;" lang="RU">-интерфейса можно перейти в интерактивная консоль выполнения </span>JavaScript<span style="mso-ansi-language: ru;"> <span lang="RU">и </span></span>Hive<span style="mso-ansi-language: ru;" lang="RU">-команд, сессию удаленного доступа, сконфигурировать порты для взаимодействия по </span>ODBC<span style="mso-ansi-language: ru;" lang="RU">, создать задание, посмотреть историю выполнения заданий, ознакомиться с типовыми примерами использования </span>Hadoop<span style="mso-ansi-language: ru;" lang="RU">. По кнопке </span>Downloads<span style="mso-ansi-language: ru;"> <span lang="RU">в настоящее время имеется возможность установить на локальную машину </span></span>x<span style="mso-ansi-language: ru;" lang="RU">86 или х64 </span>HiveODBC<span style="mso-ansi-language: ru;" lang="RU">-драйверы. Кнопка </span>ManageCluster<span style="mso-ansi-language: ru;"> <span lang="RU">позволяет контролировать размер использованного дискового пространства, а также задать папки в </span></span>WindowsAzureBLOBService<span style="mso-ansi-language: ru;" lang="RU">, которые можно рассматривать как сторидж<span style="mso-spacerun: yes;">&nbsp;</span>(Azure Storage Vault), альтернативный дисковому пространству кластера для нативных процессов </span>Hadoop<span style="mso-ansi-language: ru;" lang="RU">. Например, в качестве входного и выходного местоположения для </span>MapReduce<span style="mso-ansi-language: ru;" lang="RU">. Если что-то фатально напортачили, кластер можно пересоздать, зайдя на </span><a href="https://www.hadooponazure.com/"><span style="mso-ansi-language: ru;" lang="RU">https://www.hadooponazure.com/</span></a><span style="mso-ansi-language: ru;" lang="RU"> и нажав кнопку </span>ReleaseCluster<span style="mso-ansi-language: ru;" lang="RU">.</span></p>
<p>&nbsp;</p>
<p class="MsoNormal"><span style="mso-no-proof: yes;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/58/84/metablogapi/1803.image003_4B0D206C.png" original-url="https://blogs.technet.com/cfs-fi