Языки и параметры сортировки (службы Analysis Services)
Применимо к: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium
SQL Server Analysis Services поддерживает языки и параметры сортировки, предоставляемые операционными системами Microsoft Windows. СвойстваLanguage и Collation изначально устанавливаются на уровне экземпляра во время установки, но их можно изменить позже на разных уровнях иерархии объектов.
В многомерной модели (только) эти свойства можно задать в базе данных или кубе, а также в переводах, создаваемых для объектов в кубе. В табличной модели язык и параметры сортировки наследуются от операционной системы сервера виртуальных машин.
При задании языка и параметров сортировки в многомерной модели вы либо задаете параметры, используемые моделью данных во время обработки и выполнения запросов, либо предоставляете модель с несколькими переводами, чтобы носители иностранных языков могли работать с моделью на своем родном языке. Явная установка свойств Language и Collation в объекте (базе данных, модели или кубе) предназначена для ситуаций, в которых среда разработки и рабочий сервер настроены для разных языковых стандартов и вы хотите быть уверены в том, что язык и параметры сортировки соответствуют предполагаемой целевой среде.
Объекты, поддерживающие свойства языка и параметров сортировки
Свойства языка и параметров сортировки часто предоставляются вместе. Там, где можно задать язык, можно также задать параметры сортировки.
Можно задать Language и Collation для этих объектов:
Экземпляр. Все проекты, развернутые в экземпляре, получат язык и параметры сортировки этого экземпляра, если язык и параметры сортировки не определены. По умолчанию в многомерной модели настройки языка и параметров сортировки пусты. При развертывании проекта результирующая база данных и кубы получают язык и параметры сортировки экземпляра.
Изначально свойства языка и параметров сортировки задаются во время установки, но администратор может переопределить их в Management Studio. Дополнительные сведения см. в разделе Изменение языка по умолчанию и параметров сортировки для экземпляра .
База данных. Чтобы отменить наследование, можно задать язык и параметры сортировки на уровне проекта, используемого для всех кубов, содержащихся в базе данных. Если не указано иное, все кубы в базе данных получат язык и параметры сортировки, заданные на этом уровне. Если регулярно создавать и развертывать код для разных языков (например, разрабатывать решение на компьютере с китайским языком, но развертывать это решение на сервере во французском филиале), то настройка языка и параметров сортировки на уровне базы данных — это первый и важнейший шаг, позволяющий обеспечить работоспособность решения в целевой среде. Лучше всего задавать эти свойства внутри проекта (с помощью команды Изменить базу данных в проекте).
Измерение базы данных. Свойства Language и Collation доступны в конструкторе для измерения базы данных, настраивать эти свойства для этого объекта не стоит. Измерения базы данных не используются в качестве автономных объектов, поэтому будет трудно, а то и невозможно использовать заданные свойства. В кубе измерение всегда наследует Language и Collation от родительского куба. Все значения, которые могут быть заданы в автономном объекте измерения базы данных, игнорируются.
Куб. В качестве основной структуры запросов можно задать язык и параметры сортировки на уровне куба. Так, может потребоваться создать нескольких языковых версий куба, например английскую и китайскую версии, в одном и том же проекте, и у каждого куба будет свой собственный язык и параметры сортировки.
Язык и параметров сортировки, заданные для куба, используются всеми мерами и измерениями, содержащимися в кубе. Единственный способ более точно настроить параметры сортировки — при создании переводов для атрибута измерения. В противном случае, если нет переводов на уровне атрибута, для всего куба будет только один набор параметров сортировки.
Кроме того, можно установить Languageавтономно с помощью команды Перевести объект .
Объект перевода создается при добавлении переводов к кубу или к измерению. Language является частью определения перевода. Collation, с другой стороны, устанавливается для куба или элемента более высокого уровня, и является общим для всех переводов. Это видно в XMLA куба, содержащего переводы: вы увидите несколько языковых свойств (по одному для каждого перевода), но только один набор параметров сортировки. Обратите внимание, что существует единственное исключение для переводов атрибутов измерений — можно переопределить параметры сортировки куба, указав параметры сортировки атрибута, соответствующего исходному столбцу (ядро СУБД поддерживает установку параметров сортировки для отдельных столбцов, и обычно настраиваются отдельные переводы для получения данных элементов из различных исходных столбцов). Но в других случаях для всех остальных переводов используется только Language без Collation . Дополнительные сведения см. в разделе Поддержка параметров перевода в службах Analysis Services .
Поддержка языков в Analysis Services
Свойство Language задает языковой стандарт объекта, используемый при обработке, в запросах, а также с Captions и Translations для поддержки многоязычных сценариев. Языковые стандарты включают идентификатор языка, например английский, и территорию, например США или Австралию, которая позволяет дополнительно уточнить форматы даты и времени.
На уровне экземпляра это свойство задается при установке и зависит от языка операционной системы Windows Server (один из 37 языков, если установлен языковой пакет). Изменить язык в программе установки невозможно.
После установки можно переопределить Language с помощью страницы свойств сервера в Management Studio или в файле конфигурации msmdsrv.ini. Можно выбрать один из многих других языков, включая все языки, поддерживаемые клиентской ОС Windows. При установке на уровне экземпляра на сервере Language определяет языковой стандарт для всех баз данных, которые развертываются после этого. Например, если задать для Language немецкий язык, то все базы данных, развертываемые в этом экземпляре, получат значение свойства языка 1031: это код немецкого языка.
Значение свойства языка — код языка (LCID)
Допустимые значения включают все коды языков, отображающиеся в раскрывающемся списке. В Management Studio и SQL Server Data Tools коды языковых стандартов представляются в виде строковых эквивалентов. Одни и те же языки отображаются везде, где задано свойство Language , вне зависимости от инструмента. Наличие идентичных списков языков позволит однородно реализовать и проверить переводы во всей модели.
Хотя в службах Analysis Services языки перечислены по алфавиту по их названиям, фактические значения свойств сохраняются в виде кодов языков. При задании свойства языка программными средствами или с помощью файла msmdsrv.ini используйте в качестве значения код языка (LCID) . Код языка — это 32-разрядное значение, состоящее из идентификатора языка, идентификатора сортировки и зарезервированных битов, идентифицирующих конкретный язык. SQL Server Analysis Services использует идентификаторы LCID для указания выбранного языка для экземпляров и объектов SQL Server Analysis Services.
Можно задать код языка в шестнадцатеричном или в десятичном формате. Примеры допустимых значений для свойства Язык :
0x0409 или 1033 — английский (США)
0x0411 или 1041 — японский
0x0407 или 1031 — немецкий (Германия)
0x0416 или 1046 — португальский (Бразилия).
Более полный список см. в разделе Идендификаторы языковых стандартов, назначаемые в Майкрософт. Дополнительные сведения см. в разделе Кодировки и кодовые страницы.
Примечание
Свойство Language не определяет язык, на котором возвращаются системные сообщения и отображаются строки в пользовательском интерфейсе. Ошибки, предупреждения и сообщения локализованы для всех языков, поддерживаемых в Microsoft Office и Office 365, и используются автоматически, когда соединение с клиентом указывает один из поддерживаемых языков.
Поддержка параметров сортировки в Analysis Services
SQL Server Analysis Services использует только Windows (версии _90 и _100) и двоичные параметры сортировки. Устаревшие параметры сортировки SQL Server не используются. В кубе применяются единые параметры сортировки для всех компонентов, за исключением переводов на уровне атрибута. Дополнительные сведения об определении переводов атрибутов см. в разделе Поддержка параметров перевода в службах Analysis Services.
Параметры сортировки управляют учетом регистра для всех строк в языках, где различаются заглавные и строчные буквы, кроме идентификаторов объектов. Если в идентификаторе объекта используются символы в верхнем и нижнем регистре, следует указать, что учет регистра идентификаторов объектов определяется не параметрами сортировки, а SQL Server Analysis Services. Для идентификаторов объектов на английском языке в идентификаторах объектов не учитывается регистр (независимо от параметров сортировки). В отношении кириллицы и других бикамеральных языков верно обратное (регистр всегда учитывается). Дополнительные сведения см. в разделе Советы и рекомендации по глобализации (службы Analysis Services).
Параметры сортировки в Analysis Services совместимы с параметрами сортировки в ядре СУБД SQL Server, если в обоих случаях выбраны одинаковые настройки. Например, если в реляционной БД учитываются диакритические знаки, следует настроить куб таким же образом. Если параметры сортировки не совпадают, могут возникнуть проблемы. Пример и обходные пути см. в разделе Пробелы в строках в формате Юникод обрабатываются по-разному в зависимости от параметров сортировки. Дополнительные сведения о параметрах сортировки и ядре СУБД см. в разделе Collation and Unicode Support.
Типы параметров сортировки
Службы Analysis Services поддерживают два типа параметров сортировки:
Параметры сортировки Windows (версии _90 и _100)
Параметры сортировки Windows имеют версию _90 (не отмеченная устаревшая версия) и более новую версию _100. Только в версии _100 в имени параметра сортировки отображается номер версии:
latin1_general;
latin1_general_100.
Параметры сортировки Windows упорядочивают знаки на основе лингвистических и культурных характеристик языка. В Windows параметров сортировки больше, чем языковых стандартов (или языков), используемых с ними, поскольку многие языки используют одинаковый алфавит и правила сортировки и сравнения символов. Например, 33 языковых стандарта Windows, включая все стандарты португальского и английского языка для Windows, используют кодовую страницу Latin1 (1252) и следуют общему набору правил сортировки и сравнения символов.
Примечание
При выборе параметров сортировки можно использовать параметры сортировки основной базы данных. Тем не менее, если вы можете выбрать, версия _100 является более актуальной и предлагает более лингвистически точное соглашение о сортировке культур.
Параметры двоичной сортировки (BIN или BIN2)
При двоичной сортировке выполняется сортировка по кодовым точкам Юникода, а не по языковым значениям. Например, параметры сортировки Latin1_General_BIN и Japanese_BIN дают одинаковые результаты сортировки, если используются с данными в Юникоде. Языковая сортировка может дать результат, подобный aAbBcCdD, но двоичная сортировка выдаст ABCDabcd, поскольку кодовые точки у всех символов верхнего регистра всегда больше, чем у кодовых точек символов нижнего регистра.
Параметры порядка сортировки
Параметры сортировки используются для уточнения правил сортировки и сравнения на основе регистра, диакритических знаков, каны (для японского языка) и ширины. Например, значение по умолчанию свойства конфигурации параметров сортировки для SQL Server Analysis Services — Latin1_General_AS_CS, указывающее, что используются параметры сортировки Latin1_General с учетом диакритических знаков и с учетом регистра.
Обратите внимание, что BIN и BIN2 взаимно исключают другие параметры сортировки. Если нужно использовать BIN или BIN2, то отключается учет диакритических знаков. Аналогичным образом, если выбрать BIN2, то параметры учета регистра, диакритических знаков, каны и ширины становятся недоступны.
В следующей таблице описаны параметры порядка сортировки параметров сортировки Windows и связанные с ними суффиксы для SQL Server Analysis Services.
Порядок сортировки (суффикс) | Описание порядка сортировки |
---|---|
Двоичная (_BIN) или BIN2 (_BIN2) | В SQL Server существует два типа двоичной сортировки: старая сортировка BIN и новая сортировка BIN2. При сортировке BIN2 все символы сортируются в соответствии со своими точками кода. При сортировке BIN только первый символ сортируется в соответствии со своей точкой, а остальные символы сортируются по своим байтовым значениям. (Так как платформа Intel не всегда является архитектурой по порядку следования байтов, символы кода Unicode всегда хранятся с перестановкой байт). Для двоичных параметров сортировки на основе типов данных Юникода при сортировке данных локаль не учитывается. Например, параметры сортировки Latin_1_General_BIN и Japanese_BIN дают одинаковые результаты сортировки, если используются с данными в Юникоде. Двоичный порядок сортировки учитывает регистр и диакритические знаки. Двоичный порядок сортировки является самым быстрым. |
С учетом регистра (_CS) | Различаются буквы верхнего и нижнего регистров. При выборе этого параметра буквы нижнего регистра при сортировке ставятся перед соответствующими буквами верхнего регистра. Можно явным образом указать, что регистр не учитывается, с помощью параметра _CI. Параметры учета регистра для параметров сортировки не применяются для идентификаторов объектов, например для идентификаторов измерений, кубов и других объектов. Дополнительные сведения см. в разделе Советы и рекомендации по глобализации (службы Analysis Services). |
С учетом диакритических знаков (_AS) | Различаются символы с диакритическими знаками и без них. Например, "a" отлично от "ấ". Если этот параметр не выбран, SQL Server Analysis Services считает варианты букв с диакритических знаков одинаковыми для целей сортировки. Можно явным образом указать, что диакритические знаки не учитываются, с помощью параметра _АI. |
С учетом типа японской азбуки (_KS) | Различаются два вида японской азбуки: хирагана и катакана. Если этот параметр не выбран, SQL Server Analysis Services считает символы хираганы и катаканы равными для целей сортировки. Для сортировки с учетом типа японской азбуки не существует суффикса порядка сортировки. |
С учетом ширины символов (_WS) | Различаются одинаковые символы, представленные одним и двумя байтами. Если этот параметр не выбран, SQL Server Analysis Services считает однобайтовое и двухбайтовое представление одного и того же символа идентичным для целей сортировки. Для сортировки с учетом ширины символов не существует суффикса порядка сортировки. |
Изменение языка по умолчанию и параметров сортировки для экземпляра
Язык по умолчанию и параметры сортировки устанавливаются при установке, но их можно изменить в ходе настройки после установки. Изменение параметров сортировки на уровне экземпляра — непростая задача, для которой действуют следующие требования.
Перезапустите службу.
Обновите параметры сортировки для существующих объектов. Параметры сортировки наследуются после создания объекта. Последующие изменения параметров сортировки должны выполняться вручную. Дополнительные сведения см. в разделе Изменение языка и параметров сортировки в модели данных с использованием XMLA приведены советы о том, как распространить изменения параметров сортировки по всей модели.
Заново обработайте разделы и измерения после обновления параметров сортировки.
Чтобы изменить язык по умолчанию или параметры сортировки на уровне сервера, можно использовать SQL Server Management Studio или AMO PowerShell. Кроме того, можно изменить <параметры Language> и <CollationName> в файле msmdsrv.ini, указав код языка.
В Среде Management Studio щелкните правой кнопкой мыши имя сервера | Вариантов размещения | Язык и параметры сортировки.
Выберите параметры сортировки. Чтобы выбрать Двоичный или Двоичный 2, сначала снимите флажок С учетом диакритических знаков.
Обратите внимание, что параметры сортировки и языковые параметры не зависят друг от друга. При изменении параметра значения другого не будут отфильтрованы, чтобы показать распространенные сочетания.
Обновите модель данных для использования новых параметров сортировки (см. следующий раздел).
Перезапустите службу.
Измените язык или параметры сортировки в кубе
В обозревателе решений дважды щелкните куб, чтобы открыть его в конструкторе кубов.
В области "Измерения" или "Меры" выберите узел верхнего уровня. Объектом верхнего уровня в любой области является куб.
В окне "Свойства" задайте Language и Collation. Выбранные значения будут использоваться всеми объектами куба, включая измерения куба и меры, и повлияют на операции обработки и запросов.
Единственный способ внедрения дополнительных свойств языка и параметров сортировки для объектов в кубе — с помощью переводов. Дополнительные сведения см. в разделе Поддержка параметров перевода в службах Analysis Services .
Изменение языка и параметров сортировки в модели данных с использованием XMLA
Язык и параметры сортировки наследуются после создания объекта. Последующие изменения этих свойств должны выполняться вручную. Для быстрого изменения параметров сортировки нескольких объектов можно использовать команду ALTER в сценарии XMLA.
По умолчанию параметры сортировки на уровне базы данных устанавливаются один раз. Наследование подразумевается для всей иерархии объектов. Если явным образом задать Collation для объектов в кубе, что разрешено для отдельных атрибутов измерения, изменения появятся в определении XMLA. В противном случае будет существовать только свойство параметров сортировки верхнего уровня.
Перед использованием XMLA для изменения существующей базы данных убедитесь, что не возникнет несоответствий между базой данных и исходными файлами, используемыми для ее создания. Например, можно использовать XMLA для быстрого изменения языка или параметра сортировки для экспериментального тестирования, но после этого могут измениться исходные файлы (см. Изменение языка или параметров сортировки в кубе), вследствие чего решение будет заново развернуто с помощью уже существующих процедур.
В Management Studio щелкните правой кнопкой мыши базу данных | Создание скрипта | для базы данныхALTER To | Новое окно Редактор запросов.
Найдите и замените существующее значение языка и параметров сортировки на другое значение.
Нажмите клавишу F5, чтобы выполнить скрипт.
Заново обработайте куб.
Повышение производительности для английских языковых стандартов с помощью EnableFast1033Locale
Если вы используете идентификатор английского (США) языка (0x0409 или 1033) в качестве языка по умолчанию для экземпляра SQL Server Analysis Services, вы можете получить дополнительные преимущества производительности, задав свойство конфигурации EnableFast1033Locale, свойство расширенной конфигурации, доступное только для этого идентификатора языка. Если для этого свойства задано значение true, SQL Server Analysis Services использовать более быстрый алгоритм для хэширования строк и сравнения. Дополнительные сведения о настройке свойств конфигурации см. в разделе Свойства сервера в службах Analysis Services.
Поддержка GB18030 в Analysis Services
GB18030 — это отдельный стандарт, который применяется в Китайской Народной Республике для кодирования китайских иероглифов. В кодировке GB18030 введенные данные могут иметь длину 1, 2 или 4 байт. В службах Analysis Services отсутствует преобразование данных при обработке данных из внешних источников. Данные просто сохраняются в Юникоде. Во время запроса выполняется преобразование GB18030 с помощью клиентских библиотек Analysis Services (в частности, поставщика OLE DB MSOLAP.dll) при возвращении текстовых данных в результатах запроса, в зависимости от параметров клиентской ОС. Ядро СУБД также поддерживает GB18030. Дополнительные сведения см. в разделе Collation and Unicode Support.
См. также:
Сценарии глобализации для служб Analysis Services
Советы и рекомендации по глобализации (службы Analysis Services)
Поддержка параметров сортировки и Юникода