Новые возможности служб Analysis Services SQL Server 2017 г.What's new in SQL Server 2017 Analysis Services

Область применения:даSQL Server 2017 Analysis ServicesнетAzure Analysis ServicesAPPLIES TO:yesSQL Server 2017 Analysis ServicesnoAzure Analysis Services

Службы аналитики SQL Server 2017 г. см. Некоторые из наиболее важных улучшений с SQL Server 2012.SQL Server 2017 Analysis Services see some of the most important enhancements since SQL Server 2012. Построение на успех табличном режиме (впервые появился в SQL Server 2012 Analysis Services), этот выпуск делает эффективнее, чем когда-либо табличные модели.Building on the success of Tabular mode (first introduced in SQL Server 2012 Analysis Services), this release makes tabular models more powerful than ever.

Многомерный режим и Power Pivot в режиме интеграции с SharePoint являются основой для многих случаев службы Analysis Services.Multidimensional mode and Power Pivot for SharePoint mode are a staple for many Analysis Services deployments. В жизненном цикле продукта служб Analysis Services эти режимы являются зрелой.In the Analysis Services product lifecycle, these modes are mature. Нет новых компонентов для любого из этих режимов, в этом выпуске.There are no new features for either of these modes in this release. Тем не менее исправления и улучшения производительности включены.However, bug fixes and performance improvements are included.

Описываемые здесь функции включаются в службах Analysis Services SQL Server 2017 г.The features described here are included in SQL Server 2017 Analysis Services. Но чтобы воспользоваться ими, необходимо также использовать последние версии SQL Server Data Tools (SSDT) и SQL Server Management Studio (SSMS).But in order to take advantage of them, you must also use the latest versions of SQL Server Data Tools (SSDT) and SQL Server Management Studio (SSMS). SSDT и SSMS обновляются ежемесячно новые и улучшенные возможности, которые обычно осуществляются с помощью новых функциональных возможностей в SQL Server.SSDT and SSMS are updated monthly with new and improved features that typically coincide with new functionality in SQL Server.

Хотя очень важно узнать о новых функциях, также важно знать, что выполняется рекомендуется к использованию и более не поддерживается в данном выпуске и в будущих выпусках.While it's important to learn about all the new features, it's also important to know what is being deprecated and discontinued in this release and future releases. Убедитесь, что для извлечения обратная совместимость (SQL Server 2017 г. службы Analysis Services).Be sure to check out Backward compatibility (SQL Server 2017 Analysis Services).

Давайте рассмотрим некоторые из ключевых новых функций в этом выпуске.Let's take a look at some of the key new features in this release.

Уровень совместимости 1400 для табличных моделей1400 Compatibility level for tabular models

Чтобы воспользоваться преимуществами множества новых возможностей и функций, описанных здесь, необходимо задать новую или существующую табличных моделей или обновленным до уровня совместимости 1400.To take advantage of many of the new features and functionality described here, new or existing tabular models must be set or upgraded to the 1400 compatibility level. Модели с уровнем совместимости 1400 нельзя развертывать в SQL Server 2016 с пакетом обновления 1 (SP1) или более ранней версии либо переводить на более низкий уровень совместимости.Models at the 1400 compatibility level cannot be deployed to SQL Server 2016 SP1 or earlier, or downgraded to lower compatibility levels. Дополнительные сведения см. в разделе уровень совместимости для табличных моделей служб Analysis Services.To learn more, see Compatibility level for Analysis Services tabular models.

В SSDT можно выбрать новый уровень совместимости 1400 при создании проектов табличной модели.In SSDT, you can select the new 1400 compatibility level when creating new tabular model projects.

AS_NewTabular1400Project

Для обновления существующей табличной модели в SSDT, в обозревателе решений щелкните правой кнопкой мыши Model.bim, а затем в свойства, задайте уровень совместимости свойства SQL Server 2017 г. (1400).To upgrade an existing tabular model in SSDT, in Solution Explorer, right-click Model.bim, and then in Properties, set the Compatibility Level property to SQL Server 2017 (1400).

AS_Model_Properties

Важно помнить, после обновления существующей модели 1400, невозможно понизить.It's important to keep in mind, once you upgrade an existing model to 1400, you can't downgrade. Обязательно сохраните резервную копию базы данных модели 1200.Be sure to keep a backup of your 1200 model database.

Современный интерфейс получения данныхModern Get Data experience

Когда дело доходит до импорта данных из источников данных в табличной модели, SQL Server Data Tools (SSDT) вводит современном получить данные взаимодействия для моделей на уровне совместимости 1400.When it comes to importing data from data sources into your tabular models, SQL Server Data Tools (SSDT) introduces the modern Get Data experience for models at the 1400 compatibility level. Он основан на аналогичном интерфейсе в Power BI Desktop и Microsoft Excel 2016.This new feature is based on similar functionality in Power BI Desktop and Microsoft Excel 2016. Современные возможности получения данных обеспечивает преобразования огромную данных и возможности анализа данных с помощью построителя запросов на получение данных и выражений M.The modern Get Data experience provides immense data transformation and data mashup capabilities by using the Get Data query builder and M expressions.

Современные возможности получения данных поддерживает широкий спектр источников данных.The modern Get Data experience provides support for a wide range of data sources. Забегая вперед — обновления будет включать поддержку еще больше.Going forward, updates will include support for even more.

AS_Get_Data_in_SSDT

Мощный и интуитивно понятный пользовательский интерфейс делает выбор данных и проще, чем когда-либо возможности преобразования и анализа данных.A powerful and intuitive user interface makes selecting your data and data transformation/mashup capabilities easier than ever.

Дополнительно гибридного веб-приложения

Возникают в современных получение данных и возможности гибридного M не применяются к существующей upraded табличных моделей уровня совместимости 1200 1400.The modern Get Data experience and M mashup capabilities do not apply to existing tabular models upraded from the 1200 compatibility level to 1400. Новые возможности применяется только для новых моделей, созданных на уровне совместимости 1400.The new experience only applies to new models created at the 1400 compatibility level.

Кодирование подсказкиEncoding hints

Этой версии появилась кодирования подсказки — дополнительная возможность, используемый для оптимизации обработки (обновления данных) для больших табличных моделей в памяти.This release introduces encoding hints, an advanced feature used to optimize processing (data refresh) of large in-memory tabular models. Для лучшего понимания кодировка, в разделе производительности СУБД из табличных моделей в SQL Server 2012 Analysis Services Технический документ, чтобы лучше понять кодировки.To better understand encoding, see Performance Tuning of Tabular Models in SQL Server 2012 Analysis Services whitepaper to better understand encoding.

  • Значение кодировки обеспечивает более высокую производительность запросов, для столбцов, которые обычно используются только для агрегатов.Value encoding provides better query performance for columns that are typically only used for aggregations.

  • Кодирование хэш является предпочтительным для группирования столбцы (часто значения, таблица измерения) и внешние ключи.Hash encoding is preferred for group-by columns (often dimension-table values) and foreign keys. Строковые столбцы всегда являются хэш в кодировке.String columns are always hash encoded.

Числовые столбцы можно использовать любой из этих методов кодирования.Numeric columns can use either of these encoding methods. Когда службы Analysis Services начинает обработку таблицы, если любой из таблиц пуст (с или без секций) или выполняемой операции обработки всей таблицы, для каждого числового столбца определить, следует ли применять значение или кодировка хэш взяты образцы значений .When Analysis Services starts processing a table, if either the table is empty (with or without partitions) or a full-table processing operation is being performed, samples values are taken for each numeric column to determine whether to apply value or hash encoding. По умолчанию значение кодировки выбирается при образца различающихся значений в столбце является достаточно большим, — в противном случае кодировка хэш обычно обеспечивает более высокую степень сжатия.By default, value encoding is chosen when the sample of distinct values in the column is large enough – otherwise hash encoding usually provides better compression. Возможно, для служб Analysis Services для изменения метода шифрования после столбца частично обработки в зависимости от получения дополнительных сведений о распределении данных и перезапустить процесс кодирования; Тем не менее это приводит к увеличению времени обработки и неэффективным.It is possible for Analysis Services to change the encoding method after the column is partially processed based on further information about the data distribution, and restart the encoding process; however, this increases processing time and is inefficient. Техническая документация настройки производительности рассматривается более подробно повторно кодировка и описывает, как сделать это с помощью приложения SQL Server Profiler.The performance-tuning whitepaper discusses re-encoding in more detail and describes how to detect it using SQL Server Profiler.

Указания кодировки позволяют разработчику модели, указав предпочтение, метод шифрования, заданный знания из профилирование данных и/или в ответ на повторная кодировка событий трассировки.Encoding hints allow the modeler to specify a preference for the encoding method given prior knowledge from data profiling and/or in response to re-encoding trace events. Так как вычисление агрегата для хэш кодировке столбцы медленнее, чем для столбцов, значение в кодировке, кодирование может быть указан как подсказку для таких столбцов.Since aggregation over hash-encoded columns is slower than over value-encoded columns, value encoding may be specified as a hint for such columns. Не гарантируется, что применяется приоритет.It is not guaranteed that the preference is applied. Он представляет собой рекомендацию, в отличие от параметра.It is a hint as opposed to a setting. Чтобы задать указание для кодировки, присвойте свойству EncodingHint для столбца.To specify an encoding hint, set the EncodingHint property on the column. Возможные значения: «Default», «Значение» и «Хэш».Possible values are “Default”, “Value” and “Hash”. Следующий фрагмент JSON на основе метаданных из файла Model.bim указывает значение для столбца Sales Amount кодировку.The following snippet of JSON-based metadata from the Model.bim file specifies value encoding for the Sales Amount column.

{
    "name": "Sales Amount",
    "dataType": "decimal",
    "sourceColumn": "SalesAmount",
    "formatString": "\\$#,0.00;(\\$#,0.00);\\$#,0.00",
    "sourceProviderType": "Currency",
    "encodingHint": "Value"
}

Неоднородные иерархииRagged hierarchies

В табличных моделях можно моделировать иерархии типа "родители-потомки".In tabular models, you can model parent-child hierarchies. Иерархии с разным количеством уровней часто называют неоднородными.Hierarchies with a differing number of levels are often referred to as ragged hierarchies. По умолчанию неоднородные иерархии отображаются с пустыми полями для уровней ниже последнего дочернего уровня.By default, ragged hierarchies are displayed with blanks for levels below the lowest child. Вот пример неоднородной иерархии на организационной диаграмме:Here's an example of a ragged hierarchy in an organizational chart:

AS_Ragged_Hierarchy

В этом выпуске появилось свойство Скрыть члены .This release introduces the Hide Members property. Свойству Скрыть члены иерархии можно присвоить значение Скрыть пустые члены.You can set the Hide Members property for a hierarchy to Hide blank members.

AS_Hide_Blank_Members

Примечание

Пустые члены в модели представлены пустым значением DAX, а не пустой строкой.Blank members in the model are represented by a DAX blank value, not an empty string.

Если задано значение Скрыть пустые членыи модель развернута, более удобную для восприятия версию иерархии можно просмотреть в таких клиентских средствах создания отчетов, как Excel.When set to Hide blank members, and the model deployed, an easier to read version of the hierarchy is shown in reporting clients like Excel.

AS_Non_Ragged_Hierarchy

Строки детализацииDetail Rows

Теперь можно определить настраиваемый набор строк, на основе которого формируется значение меры.You can now define a custom row set contributing to a measure value. Строки детализации похожи на действие детализации по умолчанию в многомерных моделях.Detail Rows is similar to the default drillthrough action in multidimensional models. Это позволяет конечным пользователям просматривать более подробные данные, чем на агрегированном уровне.This allows end-users to view information in more detail than the aggregated level.

На приведенной ниже сводной таблице представлен объем продаж в Интернете по годам из образца табличной модели Adventure Works.The following PivotTable shows Internet Total Sales by year from the Adventure Works sample tabular model. Вы можете щелкнуть правой кнопкой мыши ячейку с агрегированным значением меры, а затем выбрать пункт Показать подробности , чтобы просмотреть строки детализации.You can right-click a cell with an aggregated value from the measure and then click Show Details to view the detail rows.

AS_Show_Details

По умолчанию отображаются связанные данные из таблицы продаж в Интернете.By default, the associated data in the Internet Sales table is displayed. Такие ограниченные возможности зачастую бесполезны для пользователя, так как таблица может не содержать столбцы, включающие нужную информацию, например имя клиента и сведения о заказе.This limited behavior is often not meaningful for the user because the table may not have the necessary columns to show useful information such as customer name and order information. С помощью строк детализации можно указать свойство Выражение свойств детализации для мер.With Detail Rows, you can specify a Detail Rows Expression property for measures.

Свойство "Выражение строк детализации" для мерDetail Rows Expression property for measures

Свойство Выражение свойств детализации для мер позволяет создателям моделей настраивать столбцы и строки, возвращаемые конечным пользователям.The Detail Rows Expression property for measures allows model authors to customize the columns and rows returned to the end-user.

AS_Detail_Rows_Expression_Property

SELECTCOLUMNS DAX функция обычно используется в выражении строки детализации.The SELECTCOLUMNS DAX function is commonly used in a Detail Rows Expression. В приведенном ниже примере определяются столбцы, возвращаемые для строк в таблице продаж в Интернете в образце табличной модели Adventure Works.The following example defines the columns to be returned for rows in the Internet Sales table in the sample Adventure Works tabular model:

SELECTCOLUMNS(
    'Internet Sales',
    "Customer First Name", RELATED( Customer[Last Name]),
    "Customer Last Name", RELATED( Customer[First Name]),
    "Order Date", 'Internet Sales'[Order Date],
    "Internet Total Sales", [Internet Total Sales]
)

Когда свойство определено и модель развернута, настраиваемый набор строк возвращается при выборе пользователем команды Показать подробности.With the property defined and the model deployed, a custom row set is returned when the user selects Show Details. Контекст фильтра выбранной ячейки учитывается автоматически.It automatically honors the filter context of the cell that was selected. В этом примере отображаются только строки для значения 2010.In this example, only the rows for 2010 value are displayed:

AS_Detail_Rows

Свойство "Выражение строк детализации по умолчанию" для таблицDefault Detail Rows Expression property for tables

Так же как и меры, таблицы имеют свойство для определения выражения строк детализации.In addition to measures, tables also have a property to define a detail rows expression. Свойство Выражение строк детализации по умолчанию используется по умолчанию для всех мер в таблице.The Default Detail Rows Expression property acts as the default for all measures within the table. Меры, которые имеют свои собственные выражения, определенного наследует выражение из таблицы и отобразить строку, набор для таблицы.Measures that do not have their own expression defined inherits the expression from the table and show the row set defined for the table. Это позволяет повторно использовать выражения, и более поздней версии, автоматически добавляется в таблицу новых мер наследует выражение.This allows reuse of expressions, and new measures added to the table later automatically inherits the expression.

AS_Default_Detail_Rows_Expression

Функция DAX DETAILROWSDETAILROWS DAX Function

В этом выпуске появилась функция DAX DETAILROWS , которая возвращает набор строк, определяемый выражением строк детализации.Included in this release is a new DETAILROWS DAX function that returns the row set defined by the detail rows expression. Она действует аналогично инструкции DRILLTHROUGH в MDX, которая также совместима с выражениями строк детализации, определенными в табличных моделях.It works similarly to the DRILLTHROUGH statement in MDX, which is also compatible with detail rows expressions defined in tabular models.

Приведенный ниже запрос DAX возвращает набор строк, определенный выражением строк детализации для меры или ее таблицы.The following DAX query returns the row set defined by the detail rows expression for the measure or its table. Если выражение не определено, возвращаются данные таблицы продаж в Интернете, так как она содержит меру.If no expression is defined, the data for the Internet Sales table is returned because it's the table containing the measure.

EVALUATE DETAILROWS([Internet Total Sales])

Безопасность на уровне объектаObject-level security

В этой версии появился безопасности на уровне объекта для таблиц и столбцов.This release introduces object-level security for tables and columns. Помимо ограничения доступа к данным таблицы и столбца, можно защитить конфиденциальные имена таблиц и столбцов.In addition to restricting access to table and column data, sensitive table and column names can be secured. Благодаря этому злоумышленник не сможет узнать о существовании этих таблиц.This helps prevent a malicious user from discovering such a table exists.

Безопасность на уровне объекта необходимо задать, используя метаданные на основе JSON, табличных языка скриптов модели (TMSL) или табличной модели объектов (TOM).Object-level security must be set using the JSON-based metadata, Tabular Model Scripting Language (TMSL), or Tabular Object Model (TOM).

Например, приведенный ниже код позволяет защитить таблицу Product в образце табличной модели Adventure Works путем присвоения свойству MetadataPermission класса TablePermission значения None.For example, the following code helps secure the Product table in the sample Adventure Works tabular model by setting the MetadataPermission property of the TablePermission class to None.

//Find the Users role in Adventure Works and secure the Product table
ModelRole role = db.Model.Roles.Find("Users");
Table productTable = db.Model.Tables.Find("Product");
if (role != null && productTable != null)
{
    TablePermission tablePermission;
    if (role.TablePermissions.Contains(productTable.Name))
    {
        tablePermission = role.TablePermissions[productTable.Name];
    }
    else
    {
        tablePermission = new TablePermission();
        role.TablePermissions.Add(tablePermission);
        tablePermission.Table = productTable;
    }
    tablePermission.MetadataPermission = MetadataPermission.None;
}
db.Update(UpdateOptions.ExpandFull);

Динамические административные представленияDynamic Management Views (DMVs)

Динамические административные представления запросы в SQL Server Profiler, которые возвращают сведения о локальных операциях сервера и исправности сервера.DMVs are queries in SQL Server Profiler that return information about local server operations and server health. Этот выпуск включает усовершенствования для динамические административные представления (DMV) для табличных моделей на уровне совместимости 1200 и 1400.This release includes improvements to Dynamic Management Views (DMV) for tabular models at the 1200 and 1400 compatibility levels.

DISCOVER_CALC_DEPENDENCY теперь работает с табличными моделями 1200 и 1400.DISCOVER_CALC_DEPENDENCY Now works with tabular 1200 and 1400 models. Табличные модели 1400 Показать зависимости между M секций, выражения M и структурированными источниками данных.Tabular 1400 models show dependencies between M partitions, M expressions and structured data sources. Дополнительные сведения см. в разделе блога службы Analysis Services.To learn more, see the Analysis Services blog.

MDSCHEMA_MEASUREGROUP_DIMENSIONS включены улучшения это динамическое административное Представление, которое используется для отображения мер размерности различных клиентских средств.MDSCHEMA_MEASUREGROUP_DIMENSIONS Improvements are included for this DMV, which is used by various client tools to show measure dimensionality. Например функция Просмотр в сводных таблицах Excel позволяет пользователю кросс детализацию измерения, связанные с выбранной меры.For example, the Explore feature in Excel Pivot Tables allows the user to cross-drill to dimensions related to the selected measures. Этот выпуск исправляет столбцы количества элементов, которые ранее отображение неправильные значения.This release corrects the cardinality columns, which were previously showing incorrect values.

Улучшения DAXDAX enhancements

Этот выпуск поддерживает новые функции DAX и функциональные возможности.This release includes support for new DAX functions and functionality. Чтобы использовать преимущества, необходимо использовать последнюю версию SSDT.In order to take advantage, you need to use the latest version of SSDT. Дополнительные сведения см. в разделе новые DAX-функции.To learn more, see New DAX functions.

Одна из наиболее важные части новые функциональные возможности DAX — новый оператор IN или функцию, CONTAINSROW для выражения DAX.One of the most important pieces of new DAX functionality is the new IN Operator / CONTAINSROW Function for DAX expressions. Она аналогична оператору TSQL IN , обычно используемому для указания нескольких значений в предложении WHERE .This is similar to the TSQL IN operator commonly used to specify multiple values in a WHERE clause.

Ранее многозначные фильтры обычно задавались с помощью логического оператора OR , как в следующем выражении меры:Previously, it was common to specify multi-value filters using the logical OR operator, like in the following measure expression:

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
                 'Product'[Color] = "Red"
            || 'Product'[Color] = "Blue"
            || 'Product'[Color] = "Black"
    )

С помощью оператора IN это стало проще:This is simplified using the IN operator:

Filtered Sales:=CALCULATE (
        [Internet Total Sales], 'Product'[Color] IN { "Red", "Blue", "Black" }
    )

В этом случае оператор IN ссылается на таблицу с одним столбцом и тремя строками — по одному из каждых указанных цветов.In this case, the IN operator refers to a single-column table with 3 rows; one for each of the specified colors. Обратите внимание на то, что синтаксис конструктора таблицы предусматривает использование фигурных скобок.Note the table constructor syntax uses curly braces.

Оператор IN функционально эквивалентен функции CONTAINSROW .The IN operator is functionally equivalent to the CONTAINSROW function:

Filtered Sales:=CALCULATE (
        [Internet Total Sales], CONTAINSROW({ "Red", "Blue", "Black" }, 'Product'[Color])
    )

Оператор IN также можно эффективно использовать с конструкторами таблиц.The IN operator can also be used effectively with table constructors. Например, следующая мера выполняет фильтрацию по сочетанию цвета и категории продукта:For example, the following measure filters by combinations of product color and category:

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
        FILTER( ALL('Product'),
              ( 'Product'[Color] = "Red"   && Product[Product Category Name] = "Accessories" )
         || ( 'Product'[Color] = "Blue"  && Product[Product Category Name] = "Bikes" )
         || ( 'Product'[Color] = "Black" && Product[Product Category Name] = "Clothing" )
        )
    )

Благодаря новому оператору IN приведенное выше выражение меры эквивалентно следующему:By using the new IN operator, the measure expression above is now equivalent to the one below:

Filtered Sales:=CALCULATE (
        [Internet Total Sales],
        FILTER( ALL('Product'),
            ('Product'[Color], Product[Product Category Name]) IN
            { ( "Red", "Accessories" ), ( "Blue", "Bikes" ), ( "Black", "Clothing" ) }
        )
    )

Дополнительные улучшенияAdditional improvements

Помимо новых функций служб Analysis Services, SSDT и SSMS также включает следующие улучшения:In addition to all the new features, Analysis Services, SSDT, and SSMS also include the following improvements:

  • Повторное использование иерархии и столбец отображена в важнее местах в списке полей Power BI.Hierarchy and column reuse surfaced in more helpful locations in the Power BI field list.
  • Дата отношения для простого создания связи измерения даты, на основе полей даты.Date relationships to easily create relationships to date dimensions based on date fields.
  • Вариант установки по умолчанию для служб Analysis Services теперь находится в табличном режиме.Default installation option for Analysis Services is now for tabular mode.
  • Новые источники данных для получения данных (Power Query).New Get Data (Power Query) data sources.
  • Редактор DAX для SSDT.DAX Editor for SSDT.
  • Для запросов M поддерживают существующими источниками данных DirectQuery.Existing DirectQuery data sources support for M queries.
  • Усовершенствования SSMS, такие как просмотр, редактирование и сценарии для структурированными источниками данных.SSMS improvements, such as viewing, editing, and scripting support for structured data sources.

См. также:See also

Заметки о выпуске SQL Server 2017 г. SQL Server 2017 Release Notes
Что нового в SQL Server 2017What's new in SQL Server 2017