semantic-link-labs 0.6.0__py3-none-any.whl → 0.7.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of semantic-link-labs might be problematic. Click here for more details.

Files changed (103) hide show
  1. semantic_link_labs-0.7.0.dist-info/METADATA +148 -0
  2. semantic_link_labs-0.7.0.dist-info/RECORD +111 -0
  3. {semantic_link_labs-0.6.0.dist-info → semantic_link_labs-0.7.0.dist-info}/WHEEL +1 -1
  4. sempy_labs/__init__.py +26 -2
  5. sempy_labs/_ai.py +3 -65
  6. sempy_labs/_bpa_translation/_translations_am-ET.po +828 -0
  7. sempy_labs/_bpa_translation/_translations_ar-AE.po +860 -0
  8. sempy_labs/_bpa_translation/_translations_cs-CZ.po +894 -0
  9. sempy_labs/_bpa_translation/_translations_da-DK.po +894 -0
  10. sempy_labs/_bpa_translation/_translations_de-DE.po +933 -0
  11. sempy_labs/_bpa_translation/_translations_el-GR.po +936 -0
  12. sempy_labs/_bpa_translation/_translations_es-ES.po +915 -0
  13. sempy_labs/_bpa_translation/_translations_fa-IR.po +883 -0
  14. sempy_labs/_bpa_translation/_translations_fr-FR.po +938 -0
  15. sempy_labs/_bpa_translation/_translations_ga-IE.po +912 -0
  16. sempy_labs/_bpa_translation/_translations_he-IL.po +855 -0
  17. sempy_labs/_bpa_translation/_translations_hi-IN.po +892 -0
  18. sempy_labs/_bpa_translation/_translations_hu-HU.po +910 -0
  19. sempy_labs/_bpa_translation/_translations_is-IS.po +887 -0
  20. sempy_labs/_bpa_translation/_translations_it-IT.po +931 -0
  21. sempy_labs/_bpa_translation/_translations_ja-JP.po +805 -0
  22. sempy_labs/_bpa_translation/_translations_nl-NL.po +924 -0
  23. sempy_labs/_bpa_translation/_translations_pl-PL.po +913 -0
  24. sempy_labs/_bpa_translation/_translations_pt-BR.po +909 -0
  25. sempy_labs/_bpa_translation/_translations_pt-PT.po +904 -0
  26. sempy_labs/_bpa_translation/_translations_ru-RU.po +909 -0
  27. sempy_labs/_bpa_translation/_translations_ta-IN.po +922 -0
  28. sempy_labs/_bpa_translation/_translations_te-IN.po +896 -0
  29. sempy_labs/_bpa_translation/_translations_th-TH.po +873 -0
  30. sempy_labs/_bpa_translation/_translations_zh-CN.po +767 -0
  31. sempy_labs/_bpa_translation/_translations_zu-ZA.po +916 -0
  32. sempy_labs/_clear_cache.py +9 -4
  33. sempy_labs/_generate_semantic_model.py +30 -56
  34. sempy_labs/_helper_functions.py +358 -14
  35. sempy_labs/_icons.py +10 -1
  36. sempy_labs/_list_functions.py +478 -237
  37. sempy_labs/_model_bpa.py +194 -18
  38. sempy_labs/_model_bpa_bulk.py +363 -0
  39. sempy_labs/_model_bpa_rules.py +4 -4
  40. sempy_labs/_model_dependencies.py +12 -10
  41. sempy_labs/_one_lake_integration.py +7 -7
  42. sempy_labs/_query_scale_out.py +45 -66
  43. sempy_labs/_refresh_semantic_model.py +7 -0
  44. sempy_labs/_translations.py +154 -1
  45. sempy_labs/_vertipaq.py +103 -90
  46. sempy_labs/directlake/__init__.py +5 -1
  47. sempy_labs/directlake/_directlake_schema_compare.py +27 -31
  48. sempy_labs/directlake/_directlake_schema_sync.py +55 -66
  49. sempy_labs/directlake/_dl_helper.py +233 -0
  50. sempy_labs/directlake/_get_directlake_lakehouse.py +6 -7
  51. sempy_labs/directlake/_get_shared_expression.py +1 -1
  52. sempy_labs/directlake/_guardrails.py +17 -13
  53. sempy_labs/directlake/_update_directlake_partition_entity.py +54 -30
  54. sempy_labs/directlake/_warm_cache.py +1 -1
  55. sempy_labs/lakehouse/_get_lakehouse_tables.py +61 -69
  56. sempy_labs/lakehouse/_lakehouse.py +3 -2
  57. sempy_labs/lakehouse/_shortcuts.py +1 -1
  58. sempy_labs/migration/_create_pqt_file.py +174 -182
  59. sempy_labs/migration/_migrate_calctables_to_lakehouse.py +236 -268
  60. sempy_labs/migration/_migrate_calctables_to_semantic_model.py +75 -73
  61. sempy_labs/migration/_migrate_model_objects_to_semantic_model.py +442 -426
  62. sempy_labs/migration/_migrate_tables_columns_to_semantic_model.py +91 -97
  63. sempy_labs/migration/_refresh_calc_tables.py +92 -101
  64. sempy_labs/report/_BPAReportTemplate.json +232 -0
  65. sempy_labs/report/__init__.py +6 -2
  66. sempy_labs/report/_bpareporttemplate/.pbi/localSettings.json +9 -0
  67. sempy_labs/report/_bpareporttemplate/.platform +11 -0
  68. sempy_labs/report/_bpareporttemplate/StaticResources/SharedResources/BaseThemes/CY24SU06.json +710 -0
  69. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/page.json +11 -0
  70. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/1b08bce3bebabb0a27a8/visual.json +191 -0
  71. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/2f22ddb70c301693c165/visual.json +438 -0
  72. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/3b1182230aa6c600b43a/visual.json +127 -0
  73. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/58577ba6380c69891500/visual.json +576 -0
  74. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/a2a8fa5028b3b776c96c/visual.json +207 -0
  75. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/adfd47ef30652707b987/visual.json +506 -0
  76. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/b6a80ee459e716e170b1/visual.json +127 -0
  77. sempy_labs/report/_bpareporttemplate/definition/pages/01d72098bda5055bd500/visuals/ce3130a721c020cc3d81/visual.json +513 -0
  78. sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/page.json +8 -0
  79. sempy_labs/report/_bpareporttemplate/definition/pages/92735ae19b31712208ad/visuals/66e60dfb526437cd78d1/visual.json +112 -0
  80. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/page.json +11 -0
  81. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/07deb8bce824e1be37d7/visual.json +513 -0
  82. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0b1c68838818b32ad03b/visual.json +352 -0
  83. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0c171de9d2683d10b930/visual.json +37 -0
  84. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/0efa01be0510e40a645e/visual.json +542 -0
  85. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/6bf2f0eb830ab53cc668/visual.json +221 -0
  86. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/88d8141cb8500b60030c/visual.json +127 -0
  87. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/a753273590beed656a03/visual.json +576 -0
  88. sempy_labs/report/_bpareporttemplate/definition/pages/c597da16dc7e63222a82/visuals/b8fdc82cddd61ac447bc/visual.json +127 -0
  89. sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/page.json +9 -0
  90. sempy_labs/report/_bpareporttemplate/definition/pages/d37dce724a0ccc30044b/visuals/ce8532a7e25020271077/visual.json +38 -0
  91. sempy_labs/report/_bpareporttemplate/definition/pages/pages.json +10 -0
  92. sempy_labs/report/_bpareporttemplate/definition/report.json +176 -0
  93. sempy_labs/report/_bpareporttemplate/definition/version.json +4 -0
  94. sempy_labs/report/_bpareporttemplate/definition.pbir +14 -0
  95. sempy_labs/report/_generate_report.py +255 -139
  96. sempy_labs/report/_report_functions.py +26 -33
  97. sempy_labs/report/_report_rebind.py +31 -26
  98. sempy_labs/tom/_model.py +75 -58
  99. semantic_link_labs-0.6.0.dist-info/METADATA +0 -22
  100. semantic_link_labs-0.6.0.dist-info/RECORD +0 -54
  101. sempy_labs/directlake/_fallback.py +0 -60
  102. {semantic_link_labs-0.6.0.dist-info → semantic_link_labs-0.7.0.dist-info}/LICENSE +0 -0
  103. {semantic_link_labs-0.6.0.dist-info → semantic_link_labs-0.7.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,909 @@
1
+ #
2
+ msgid ""
3
+ msgstr ""
4
+ "Language: ru-RU\n"
5
+ "MIME-Version: 1.0\n"
6
+ "Content-Type: text/plain; charset=UTF-8\n"
7
+ "Content-Transfer-Encoding: 8bit\n"
8
+
9
+ # rule_name
10
+ msgid "Do not use floating point data types"
11
+ msgstr "Не используйте типы данных с плавающей запятой"
12
+
13
+ # rule_name
14
+ msgid "Avoid using calculated columns"
15
+ msgstr "Избегайте использования вычисляемых столбцов"
16
+
17
+ # rule_name
18
+ msgid "Check if bi-directional and many-to-many relationships are valid"
19
+ msgstr ""
20
+ "Проверка допустимости отношений «многонаправленный» и «многие ко многим»"
21
+
22
+ # rule_name
23
+ msgid "Check if dynamic row level security (RLS) is necessary"
24
+ msgstr ""
25
+ "Проверьте, необходима ли динамическая безопасность на уровне строк (RLS)"
26
+
27
+ # rule_name
28
+ msgid ""
29
+ "Avoid using many-to-many relationships on tables used for dynamic row level "
30
+ "security"
31
+ msgstr ""
32
+ "Избегайте использования связей \"многие ко многим\" в таблицах, используемых"
33
+ " для динамической безопасности на уровне строк"
34
+
35
+ # rule_name
36
+ msgid "Many-to-many relationships should be single-direction"
37
+ msgstr "Отношения \"многие ко многим\" должны быть односторонними"
38
+
39
+ # rule_name
40
+ msgid "Set IsAvailableInMdx to false on non-attribute columns"
41
+ msgstr ""
42
+ "Задайте для IsAvailableInMdx значение false для столбцов, не являющихся "
43
+ "атрибутами"
44
+
45
+ # rule_name
46
+ msgid ""
47
+ "Set 'Data Coverage Definition' property on the DirectQuery partition of a "
48
+ "hybrid table"
49
+ msgstr ""
50
+ "Установка свойства \"Data Coverage Definition\" в разделе DirectQuery "
51
+ "гибридной таблицы"
52
+
53
+ # rule_name
54
+ msgid ""
55
+ "Set dimensions tables to dual mode instead of import when using DirectQuery "
56
+ "on fact tables"
57
+ msgstr ""
58
+ "Установка двойного режима таблиц измерений вместо импорта при использовании "
59
+ "DirectQuery в таблицах фактов"
60
+
61
+ # rule_name
62
+ msgid "Minimize Power Query transformations"
63
+ msgstr "Сведите к минимуму преобразования Power Query"
64
+
65
+ # rule_name
66
+ msgid "Consider a star-schema instead of a snowflake architecture"
67
+ msgstr "Рассмотрите схему типа «звезда» вместо архитектуры в виде снежинки"
68
+
69
+ # rule_name
70
+ msgid "Avoid using views when using Direct Lake mode"
71
+ msgstr "Избегайте использования видов при использовании режима Direct Lake"
72
+
73
+ # rule_name
74
+ msgid "Avoid adding 0 to a measure"
75
+ msgstr "Избегайте добавления 0 к мере"
76
+
77
+ # rule_name
78
+ msgid "Reduce usage of calculated tables"
79
+ msgstr "Сокращение использования вычисляемых таблиц"
80
+
81
+ # rule_name
82
+ msgid "Reduce usage of calculated columns that use the RELATED function"
83
+ msgstr ""
84
+ "Сокращение использования вычисляемых столбцов, использующих функцию RELATED"
85
+
86
+ # rule_name
87
+ msgid "Avoid excessive bi-directional or many-to-many relationships"
88
+ msgstr ""
89
+ "Избегайте чрезмерных двунаправленных отношений или отношений «многие ко "
90
+ "многим»"
91
+
92
+ # rule_name
93
+ msgid "Remove auto-date table"
94
+ msgstr "Удаление таблицы автодат"
95
+
96
+ # rule_name
97
+ msgid "Date/calendar tables should be marked as a date table"
98
+ msgstr "Таблицы дат/календаря должны быть помечены как таблица дат"
99
+
100
+ # rule_name
101
+ msgid "Large tables should be partitioned"
102
+ msgstr "Большие таблицы должны быть секционированы"
103
+
104
+ # rule_name
105
+ msgid "Limit row level security (RLS) logic"
106
+ msgstr "Ограничение логики безопасности на уровне строк (RLS)"
107
+
108
+ # rule_name
109
+ msgid "Model should have a date table"
110
+ msgstr "Модель должна иметь таблицу дат"
111
+
112
+ # rule_name
113
+ msgid "Calculation items must have an expression"
114
+ msgstr "Элементы вычислений должны иметь выражение"
115
+
116
+ # rule_name
117
+ msgid "Relationship columns should be of the same data type"
118
+ msgstr "Столбцы отношений должны иметь один и тот же тип данных"
119
+
120
+ # rule_name
121
+ msgid "Data columns must have a source column"
122
+ msgstr "Столбцы данных должны иметь исходный столбец"
123
+
124
+ # rule_name
125
+ msgid "Set IsAvailableInMdx to true on necessary columns"
126
+ msgstr "Установите IsAvailableInMdx в значение true для необходимых столбцов"
127
+
128
+ # rule_name
129
+ msgid "Avoid the USERELATIONSHIP function and RLS against the same table"
130
+ msgstr ""
131
+ "Избегайте использования функции USERELATIONSHIP и RLS для одной и той же "
132
+ "таблицы"
133
+
134
+ # rule_name
135
+ msgid "Avoid using the IFERROR function"
136
+ msgstr "Избегайте использования функции IFERROR"
137
+
138
+ # rule_name
139
+ msgid ""
140
+ "Use the TREATAS function instead of INTERSECT for virtual relationships"
141
+ msgstr ""
142
+ "Использование функции TREATAS вместо INTERSECT для виртуальных отношений"
143
+
144
+ # rule_name
145
+ msgid "The EVALUATEANDLOG function should not be used in production models"
146
+ msgstr ""
147
+ "Функцию EVALUATEANDLOG не следует использовать в производственных моделях"
148
+
149
+ # rule_name
150
+ msgid "Measures should not be direct references of other measures"
151
+ msgstr "Меры не должны быть прямыми ссылками на другие меры"
152
+
153
+ # rule_name
154
+ msgid "No two measures should have the same definition"
155
+ msgstr "Никакие две меры не должны иметь одинаковое определение"
156
+
157
+ # rule_name
158
+ msgid ""
159
+ "Avoid addition or subtraction of constant values to results of divisions"
160
+ msgstr ""
161
+ "Избегайте сложения или вычитания константных значений к результатам делений"
162
+
163
+ # rule_name
164
+ msgid "Avoid using '1-(x/y)' syntax"
165
+ msgstr "Избегайте использования синтаксиса '1-(x/y)'"
166
+
167
+ # rule_name
168
+ msgid "Filter measure values by columns, not tables"
169
+ msgstr "Фильтрация значений мер по столбцам, а не по таблицам"
170
+
171
+ # rule_name
172
+ msgid "Filter column values with proper syntax"
173
+ msgstr "Фильтруйте значения столбцов с правильным синтаксисом"
174
+
175
+ # rule_name
176
+ msgid "Use the DIVIDE function for division"
177
+ msgstr "Использование функции РАЗДЕЛИТЬ для деления"
178
+
179
+ # rule_name
180
+ msgid "Column references should be fully qualified"
181
+ msgstr "Ссылки на столбцы должны быть полностью квалифицированными"
182
+
183
+ # rule_name
184
+ msgid "Measure references should be unqualified"
185
+ msgstr "Ссылки на меры должны быть неквалифицированными"
186
+
187
+ # rule_name
188
+ msgid "Inactive relationships that are never activated"
189
+ msgstr "Неактивные отношения, которые никогда не активируются"
190
+
191
+ # rule_name
192
+ msgid "Remove unnecessary columns"
193
+ msgstr "Удалите ненужные столбцы"
194
+
195
+ # rule_name
196
+ msgid "Remove unnecessary measures"
197
+ msgstr "Избавьтесь от ненужных мер"
198
+
199
+ # rule_name
200
+ msgid "Ensure tables have relationships"
201
+ msgstr "Убедитесь, что у таблиц есть связи"
202
+
203
+ # rule_name
204
+ msgid "Calculation groups with no calculation items"
205
+ msgstr "Группы расчетов без элементов расчета"
206
+
207
+ # rule_name
208
+ msgid "Visible objects with no description"
209
+ msgstr "Видимые объекты без описания"
210
+
211
+ # rule_name
212
+ msgid "Provide format string for 'Date' columns"
213
+ msgstr "Укажите строку формата для столбцов \"Дата\""
214
+
215
+ # rule_name
216
+ msgid "Do not summarize numeric columns"
217
+ msgstr "Не суммируйте числовые столбцы"
218
+
219
+ # rule_name
220
+ msgid "Provide format string for measures"
221
+ msgstr "Предоставление строки формата для мер"
222
+
223
+ # rule_name
224
+ msgid "Add data category for columns"
225
+ msgstr "Добавление категории данных для столбцов"
226
+
227
+ # rule_name
228
+ msgid ""
229
+ "Percentages should be formatted with thousands separators and 1 decimal"
230
+ msgstr ""
231
+ "Проценты должны быть отформатированы с помощью разделителей тысяч и 1 знака "
232
+ "после запятой"
233
+
234
+ # rule_name
235
+ msgid ""
236
+ "Whole numbers should be formatted with thousands separators and no decimals"
237
+ msgstr ""
238
+ "Целые числа должны быть отформатированы с помощью разделителей тысяч и без "
239
+ "десятичных дробей"
240
+
241
+ # rule_name
242
+ msgid "Hide foreign keys"
243
+ msgstr "Скрыть внешние ключи"
244
+
245
+ # rule_name
246
+ msgid "Mark primary keys"
247
+ msgstr "Маркировка первичных ключей"
248
+
249
+ # rule_name
250
+ msgid "Month (as a string) must be sorted"
251
+ msgstr "Месяц (в виде строки) должен быть отсортирован"
252
+
253
+ # rule_name
254
+ msgid "Relationship columns should be of integer data type"
255
+ msgstr "Столбцы отношений должны иметь целочисленный тип данных"
256
+
257
+ # rule_name
258
+ msgid "Provide format string for \"Month\" columns"
259
+ msgstr "Укажите строку формата для столбцов \"Месяц\""
260
+
261
+ # rule_name
262
+ msgid "Format flag columns as Yes/No value strings"
263
+ msgstr "Форматирование столбцов флагов в виде строк значений «Да/Нет»"
264
+
265
+ # rule_name
266
+ msgid "Objects should not start or end with a space"
267
+ msgstr "Объекты не должны начинаться или заканчиваться пробелом"
268
+
269
+ # rule_name
270
+ msgid "First letter of objects must be capitalized"
271
+ msgstr "Первая буква дополнения должна быть заглавной"
272
+
273
+ # rule_name
274
+ msgid "Object names must not contain special characters"
275
+ msgstr "Имена объектов не должны содержать специальных символов"
276
+
277
+ # category
278
+ msgid "Do not use floating point data types"
279
+ msgstr "Производительность"
280
+
281
+ # category
282
+ msgid "Avoid using calculated columns"
283
+ msgstr "Производительность"
284
+
285
+ # category
286
+ msgid "Check if bi-directional and many-to-many relationships are valid"
287
+ msgstr "Производительность"
288
+
289
+ # category
290
+ msgid "Check if dynamic row level security (RLS) is necessary"
291
+ msgstr "Производительность"
292
+
293
+ # category
294
+ msgid ""
295
+ "Avoid using many-to-many relationships on tables used for dynamic row level "
296
+ "security"
297
+ msgstr "Производительность"
298
+
299
+ # category
300
+ msgid "Many-to-many relationships should be single-direction"
301
+ msgstr "Производительность"
302
+
303
+ # category
304
+ msgid "Set IsAvailableInMdx to false on non-attribute columns"
305
+ msgstr "Производительность"
306
+
307
+ # category
308
+ msgid ""
309
+ "Set 'Data Coverage Definition' property on the DirectQuery partition of a "
310
+ "hybrid table"
311
+ msgstr "Производительность"
312
+
313
+ # category
314
+ msgid ""
315
+ "Set dimensions tables to dual mode instead of import when using DirectQuery "
316
+ "on fact tables"
317
+ msgstr "Производительность"
318
+
319
+ # category
320
+ msgid "Minimize Power Query transformations"
321
+ msgstr "Производительность"
322
+
323
+ # category
324
+ msgid "Consider a star-schema instead of a snowflake architecture"
325
+ msgstr "Производительность"
326
+
327
+ # category
328
+ msgid "Avoid using views when using Direct Lake mode"
329
+ msgstr "Производительность"
330
+
331
+ # category
332
+ msgid "Avoid adding 0 to a measure"
333
+ msgstr "Производительность"
334
+
335
+ # category
336
+ msgid "Reduce usage of calculated tables"
337
+ msgstr "Производительность"
338
+
339
+ # category
340
+ msgid "Reduce usage of calculated columns that use the RELATED function"
341
+ msgstr "Производительность"
342
+
343
+ # category
344
+ msgid "Avoid excessive bi-directional or many-to-many relationships"
345
+ msgstr "Производительность"
346
+
347
+ # category
348
+ msgid "Remove auto-date table"
349
+ msgstr "Производительность"
350
+
351
+ # category
352
+ msgid "Date/calendar tables should be marked as a date table"
353
+ msgstr "Производительность"
354
+
355
+ # category
356
+ msgid "Large tables should be partitioned"
357
+ msgstr "Производительность"
358
+
359
+ # category
360
+ msgid "Limit row level security (RLS) logic"
361
+ msgstr "Производительность"
362
+
363
+ # category
364
+ msgid "Model should have a date table"
365
+ msgstr "Производительность"
366
+
367
+ # category
368
+ msgid "Calculation items must have an expression"
369
+ msgstr "Предотвращение ошибок"
370
+
371
+ # category
372
+ msgid "Relationship columns should be of the same data type"
373
+ msgstr "Предотвращение ошибок"
374
+
375
+ # category
376
+ msgid "Data columns must have a source column"
377
+ msgstr "Предотвращение ошибок"
378
+
379
+ # category
380
+ msgid "Set IsAvailableInMdx to true on necessary columns"
381
+ msgstr "Предотвращение ошибок"
382
+
383
+ # category
384
+ msgid "Avoid the USERELATIONSHIP function and RLS against the same table"
385
+ msgstr "Предотвращение ошибок"
386
+
387
+ # category
388
+ msgid "Avoid using the IFERROR function"
389
+ msgstr "Выражения DAX"
390
+
391
+ # category
392
+ msgid ""
393
+ "Use the TREATAS function instead of INTERSECT for virtual relationships"
394
+ msgstr "Выражения DAX"
395
+
396
+ # category
397
+ msgid "The EVALUATEANDLOG function should not be used in production models"
398
+ msgstr "Выражения DAX"
399
+
400
+ # category
401
+ msgid "Measures should not be direct references of other measures"
402
+ msgstr "Выражения DAX"
403
+
404
+ # category
405
+ msgid "No two measures should have the same definition"
406
+ msgstr "Выражения DAX"
407
+
408
+ # category
409
+ msgid ""
410
+ "Avoid addition or subtraction of constant values to results of divisions"
411
+ msgstr "Выражения DAX"
412
+
413
+ # category
414
+ msgid "Avoid using '1-(x/y)' syntax"
415
+ msgstr "Выражения DAX"
416
+
417
+ # category
418
+ msgid "Filter measure values by columns, not tables"
419
+ msgstr "Выражения DAX"
420
+
421
+ # category
422
+ msgid "Filter column values with proper syntax"
423
+ msgstr "Выражения DAX"
424
+
425
+ # category
426
+ msgid "Use the DIVIDE function for division"
427
+ msgstr "Выражения DAX"
428
+
429
+ # category
430
+ msgid "Column references should be fully qualified"
431
+ msgstr "Выражения DAX"
432
+
433
+ # category
434
+ msgid "Measure references should be unqualified"
435
+ msgstr "Выражения DAX"
436
+
437
+ # category
438
+ msgid "Inactive relationships that are never activated"
439
+ msgstr "Выражения DAX"
440
+
441
+ # category
442
+ msgid "Remove unnecessary columns"
443
+ msgstr "Содержание"
444
+
445
+ # category
446
+ msgid "Remove unnecessary measures"
447
+ msgstr "Содержание"
448
+
449
+ # category
450
+ msgid "Ensure tables have relationships"
451
+ msgstr "Содержание"
452
+
453
+ # category
454
+ msgid "Calculation groups with no calculation items"
455
+ msgstr "Содержание"
456
+
457
+ # category
458
+ msgid "Visible objects with no description"
459
+ msgstr "Содержание"
460
+
461
+ # category
462
+ msgid "Provide format string for 'Date' columns"
463
+ msgstr "Форматирование"
464
+
465
+ # category
466
+ msgid "Do not summarize numeric columns"
467
+ msgstr "Форматирование"
468
+
469
+ # category
470
+ msgid "Provide format string for measures"
471
+ msgstr "Форматирование"
472
+
473
+ # category
474
+ msgid "Add data category for columns"
475
+ msgstr "Форматирование"
476
+
477
+ # category
478
+ msgid ""
479
+ "Percentages should be formatted with thousands separators and 1 decimal"
480
+ msgstr "Форматирование"
481
+
482
+ # category
483
+ msgid ""
484
+ "Whole numbers should be formatted with thousands separators and no decimals"
485
+ msgstr "Форматирование"
486
+
487
+ # category
488
+ msgid "Hide foreign keys"
489
+ msgstr "Форматирование"
490
+
491
+ # category
492
+ msgid "Mark primary keys"
493
+ msgstr "Форматирование"
494
+
495
+ # category
496
+ msgid "Month (as a string) must be sorted"
497
+ msgstr "Форматирование"
498
+
499
+ # category
500
+ msgid "Relationship columns should be of integer data type"
501
+ msgstr "Форматирование"
502
+
503
+ # category
504
+ msgid "Provide format string for \"Month\" columns"
505
+ msgstr "Форматирование"
506
+
507
+ # category
508
+ msgid "Format flag columns as Yes/No value strings"
509
+ msgstr "Форматирование"
510
+
511
+ # category
512
+ msgid "Objects should not start or end with a space"
513
+ msgstr "Форматирование"
514
+
515
+ # category
516
+ msgid "First letter of objects must be capitalized"
517
+ msgstr "Форматирование"
518
+
519
+ # category
520
+ msgid "Object names must not contain special characters"
521
+ msgstr "Соглашения об именовании"
522
+
523
+ # description
524
+ msgid "Do not use floating point data types"
525
+ msgstr ""
526
+ "Следует избегать типа данных \"Double\" с плавающей запятой, так как это "
527
+ "может привести к непредсказуемым ошибкам округления и снижению "
528
+ "производительности в определенных сценариях. Используйте \"Int64\" или "
529
+ "\"Decimal\" там, где это уместно (но обратите внимание, что \"Decimal\" "
530
+ "ограничен 4 цифрами после знака запятой)."
531
+
532
+ # description
533
+ msgid "Avoid using calculated columns"
534
+ msgstr ""
535
+ "Вычисляемые столбцы не сжимаются так же хорошо, как столбцы данных, поэтому "
536
+ "они занимают больше памяти. Они также замедляют время обработки как таблицы,"
537
+ " так и процесса пересчета. Выгрузите логику вычисляемых столбцов в хранилище"
538
+ " данных и преобразуйте эти вычисляемые столбцы в столбцы данных."
539
+
540
+ # description
541
+ msgid "Check if bi-directional and many-to-many relationships are valid"
542
+ msgstr ""
543
+ "https://www.sqlbi.com/articles/bidirectional-relationships-and-ambiguity-in-"
544
+ "dax"
545
+
546
+ # description
547
+ msgid "Check if dynamic row level security (RLS) is necessary"
548
+ msgstr ""
549
+ "Использование динамической безопасности на уровне строк (RLS) может привести"
550
+ " к увеличению нагрузки на память и производительность. Пожалуйста, изучите "
551
+ "плюсы и минусы его использования."
552
+
553
+ # description
554
+ msgid ""
555
+ "Avoid using many-to-many relationships on tables used for dynamic row level "
556
+ "security"
557
+ msgstr ""
558
+ "Использование отношений \"многие ко многим\" в таблицах, использующих "
559
+ "динамическую безопасность на уровне строк, может привести к серьезному "
560
+ "снижению производительности запросов. Проблемы с производительностью этого "
561
+ "шаблона усугубляются при создании нескольких связей \"многие ко многим\" в "
562
+ "таблице, содержащей безопасность на уровне строк. Вместо этого используйте "
563
+ "один из шаблонов, показанных в статье ниже, где таблица с одним измерением "
564
+ "связывает таблицу безопасности как «многие-к-одному»."
565
+
566
+ # description
567
+ msgid "Set IsAvailableInMdx to false on non-attribute columns"
568
+ msgstr ""
569
+ "Чтобы ускорить время обработки и сэкономить память после обработки, не "
570
+ "следует создавать иерархии атрибутов для столбцов, которые никогда не "
571
+ "используются клиентами многомерных выражений для срезов. Другими словами, "
572
+ "для всех скрытых столбцов, которые не используются в качестве столбца "
573
+ "сортировки по столбцу или не упоминаются в пользовательских иерархиях, "
574
+ "свойство IsAvailableInMdx должно иметь значение false. Свойство "
575
+ "IsAvailableInMdx неактуально для моделей Direct Lake."
576
+
577
+ # description
578
+ msgid ""
579
+ "Set 'Data Coverage Definition' property on the DirectQuery partition of a "
580
+ "hybrid table"
581
+ msgstr ""
582
+ "Настройка свойства \"Data Coverage Definition\" может привести к повышению "
583
+ "производительности, так как подсистема знает, когда она может запрашивать "
584
+ "только импортируемую часть таблицы, а когда ей нужно запросить часть таблицы"
585
+ " DirectQuery."
586
+
587
+ # description
588
+ msgid ""
589
+ "Set dimensions tables to dual mode instead of import when using DirectQuery "
590
+ "on fact tables"
591
+ msgstr ""
592
+ "https://learn.microsoft.com/power-bi/transform-model/desktop-storage-"
593
+ "mode#propagation-of-the-dual-setting"
594
+
595
+ # description
596
+ msgid "Minimize Power Query transformations"
597
+ msgstr ""
598
+ "Сведите к минимуму преобразования Power Query, чтобы повысить "
599
+ "производительность обработки модели. По возможности рекомендуется выгрузить "
600
+ "эти преобразования в хранилище данных. Кроме того, проверьте, происходит ли "
601
+ "свертывание запросов в вашей модели. Пожалуйста, обратитесь к статье ниже "
602
+ "для получения дополнительной информации о свертывании запросов."
603
+
604
+ # description
605
+ msgid "Consider a star-schema instead of a snowflake architecture"
606
+ msgstr ""
607
+ "Вообще говоря, схема типа \"звезда\" является оптимальной архитектурой для "
608
+ "табличных моделей. В этом случае существуют допустимые случаи использования "
609
+ "подхода «снежинка». Проверьте свою модель и рассмотрите возможность перехода"
610
+ " на архитектуру схемы типа \"звезда\"."
611
+
612
+ # description
613
+ msgid "Avoid using views when using Direct Lake mode"
614
+ msgstr ""
615
+ "В режиме Direct Lake представления всегда будут возвращаться к DirectQuery. "
616
+ "Таким образом, для получения наилучшей производительности используйте столы "
617
+ "lakehouse вместо видов."
618
+
619
+ # description
620
+ msgid "Avoid adding 0 to a measure"
621
+ msgstr ""
622
+ "Добавление 0 к мере для того, чтобы в ней не отображалось пустое значение, "
623
+ "может отрицательно сказаться на производительности."
624
+
625
+ # description
626
+ msgid "Reduce usage of calculated tables"
627
+ msgstr ""
628
+ "Перенесите логику вычисляемой таблицы в хранилище данных. Использование "
629
+ "вычисляемых таблиц приведет к возникновению технического долга и "
630
+ "потенциальных несоответствий, если на вашей платформе есть несколько "
631
+ "моделей."
632
+
633
+ # description
634
+ msgid "Reduce usage of calculated columns that use the RELATED function"
635
+ msgstr ""
636
+ "Вычисляемые столбцы не сжимаются так же хорошо, как столбцы данных, и могут "
637
+ "привести к увеличению времени обработки. Таким образом, по возможности "
638
+ "следует избегать вычисляемых столбцов. Один из сценариев, в котором их может"
639
+ " быть легче избежать, — это использование функции СВЯЗАННЫЙ."
640
+
641
+ # description
642
+ msgid "Avoid excessive bi-directional or many-to-many relationships"
643
+ msgstr ""
644
+ "Ограничьте использование отношений b-di и «многие ко многим». Это правило "
645
+ "помечает модель, если более 30% отношений являются би-ди или многими-ко-"
646
+ "многим."
647
+
648
+ # description
649
+ msgid "Remove auto-date table"
650
+ msgstr ""
651
+ "Избегайте использования таблиц автодатирования. Обязательно отключите "
652
+ "автоматическую датировку таблицы в параметрах в Power BI Desktop. Это "
653
+ "позволит сэкономить ресурсы памяти."
654
+
655
+ # description
656
+ msgid "Date/calendar tables should be marked as a date table"
657
+ msgstr ""
658
+ "Это правило ищет таблицы, содержащие слова «дата» или «календарь», так как "
659
+ "они, скорее всего, должны быть помечены как таблица дат."
660
+
661
+ # description
662
+ msgid "Large tables should be partitioned"
663
+ msgstr ""
664
+ "Большие таблицы должны быть секционированы для оптимизации обработки. Это не"
665
+ " относится к семантическим моделям в режиме Direct Lake, так как они могут "
666
+ "иметь только одну секцию на таблицу."
667
+
668
+ # description
669
+ msgid "Limit row level security (RLS) logic"
670
+ msgstr ""
671
+ "Попытайтесь упростить DAX, используемый для обеспечения безопасности на "
672
+ "уровне строк. Использование функций в рамках этого правила, скорее всего, "
673
+ "может быть переложено на вышестоящие системы (хранилище данных)."
674
+
675
+ # description
676
+ msgid "Model should have a date table"
677
+ msgstr ""
678
+ "Вообще говоря, модели обычно должны иметь таблицу дат. Модели, в которых нет"
679
+ " таблицы дат, как правило, не используют такие функции, как логика операций "
680
+ "со временем, или могут не иметь правильно структурированной архитектуры."
681
+
682
+ # description
683
+ msgid "Calculation items must have an expression"
684
+ msgstr ""
685
+ "Элементы вычислений должны иметь выражение. Без выражения они не будут "
686
+ "отображать никаких значений."
687
+
688
+ # description
689
+ msgid "Relationship columns should be of the same data type"
690
+ msgstr ""
691
+ "Столбцы, используемые в связи, должны иметь один и тот же тип данных. В "
692
+ "идеале они должны иметь целочисленный тип данных (см. соответствующее "
693
+ "правило «[Форматирование] Столбцы отношений должны иметь целочисленный тип "
694
+ "данных»). Наличие столбцов в связи с разными типами данных может привести к "
695
+ "различным проблемам."
696
+
697
+ # description
698
+ msgid "Data columns must have a source column"
699
+ msgstr ""
700
+ "Столбцы данных должны иметь исходный столбец. Столбец данных без исходного "
701
+ "столбца вызовет ошибку при обработке модели."
702
+
703
+ # description
704
+ msgid "Set IsAvailableInMdx to true on necessary columns"
705
+ msgstr ""
706
+ "Чтобы избежать ошибок, убедитесь, что иерархии атрибутов включены, если "
707
+ "столбец используется для сортировки другого столбца, используется в "
708
+ "иерархии, используется в вариациях или сортируется по другому столбцу. "
709
+ "Свойство IsAvailableInMdx неактуально для моделей Direct Lake."
710
+
711
+ # description
712
+ msgid "Avoid the USERELATIONSHIP function and RLS against the same table"
713
+ msgstr ""
714
+ "Функция USERELATIONSHIP не может использоваться для таблицы, которая также "
715
+ "использует безопасность на уровне строк (RLS). Это приведет к ошибке при "
716
+ "использовании определенной меры в визуальном элементе. Это правило выделяет "
717
+ "таблицу, которая используется в функции USERELATIONSHIP меры, а также в RLS."
718
+
719
+ # description
720
+ msgid "Avoid using the IFERROR function"
721
+ msgstr ""
722
+ "Избегайте использования функции IFERROR, так как это может привести к "
723
+ "снижению производительности. Если вас беспокоит ошибка деления на ноль, "
724
+ "используйте функцию DIVIDE, так как она естественным образом разрешает такие"
725
+ " ошибки как пустые (или вы можете настроить, что должно отображаться в "
726
+ "случае такой ошибки)."
727
+
728
+ # description
729
+ msgid ""
730
+ "Use the TREATAS function instead of INTERSECT for virtual relationships"
731
+ msgstr ""
732
+ "Функция TREATAS более эффективна и обеспечивает лучшую производительность, "
733
+ "чем функция INTERSECT, при использовании в вирутальных отношениях."
734
+
735
+ # description
736
+ msgid "The EVALUATEANDLOG function should not be used in production models"
737
+ msgstr ""
738
+ "Функция EVALUATEANDLOG предназначена для использования только в средах "
739
+ "разработки/тестирования и не должна использоваться в производственных "
740
+ "моделях."
741
+
742
+ # description
743
+ msgid "Measures should not be direct references of other measures"
744
+ msgstr ""
745
+ "Это правило определяет меры, которые являются просто ссылкой на другую меру."
746
+ " В качестве примера рассмотрим модель с двумя мерами: [MeasureA] и "
747
+ "[MeasureB]. Это правило будет активировано для MeasureB, если DAX MeasureB "
748
+ "будет MeasureB:=[MeasureA]. Такие дублирующие меры должны быть устранены."
749
+
750
+ # description
751
+ msgid "No two measures should have the same definition"
752
+ msgstr ""
753
+ "Для уменьшения избыточности следует избегать двух мер с разными именами и "
754
+ "определенными одним и тем же выражением DAX."
755
+
756
+ # description
757
+ msgid "Avoid using '1-(x/y)' syntax"
758
+ msgstr ""
759
+ "Вместо использования синтаксиса \"1-(x/y)\" или \"1+(x/y)\" для вычисления "
760
+ "процента используйте базовые функции DAX (как показано ниже). Использование "
761
+ "улучшенного синтаксиса в целом повысит производительность. Система «1+/-...»"
762
+ " Синтаксис всегда возвращает значение, тогда как решение без '1+/-...' не "
763
+ "имеет (так как значение может быть 'blank'). Таким образом, «1+/-...» "
764
+ "Синтаксис может возвращать больше строк/столбцов, что может привести к "
765
+ "снижению скорости запроса. Давайте уточним на примере: Избегайте этого: 1"
766
+ " - SUM ( 'Sales'[CostAmount] ) / SUM( 'Sales'[SalesAmount] ) Лучше: DIVIDE ("
767
+ " SUM ( 'Sales'[SalesAmount] ) - SUM ( 'Sales'[CostAmount] ), SUM ( "
768
+ "'Sales'[SalesAmount] ) ) Наилучший: VAR x = SUM ( 'Sales'[SalesAmount] ) "
769
+ "RETURN DIVIDE ( x - SUM ( 'Sales'[CostAmount] ), x )"
770
+
771
+ # description
772
+ msgid "Filter measure values by columns, not tables"
773
+ msgstr ""
774
+ "Вместо использования этого шаблона FILTER('Table',[Measure]>Value) для параметров фильтра функции CALCULATE или CALCULATETABLE, используйте один из вариантов ниже (если это возможно). Фильтрация по определенному столбцу создаст меньшую таблицу для обработки модулем, что обеспечит более высокую производительность. Использование функции VALUES или функции ALL зависит от желаемого результата измерения.\n"
775
+ "Вариант 1: FILTER(VALUES('Таблица'[Столбец]),[Измерение] > значение)\n"
776
+ "Вариант 2: FILTER(ALL('Таблица'[Столбец]),[Измерение] > значение)"
777
+
778
+ # description
779
+ msgid "Filter column values with proper syntax"
780
+ msgstr ""
781
+ "Вместо использования этого шаблона FILTER('Table','Table'[Column]=\"Value\") для параметров фильтра функции CALCULATE или CALCULATETABLE, используйте один из вариантов ниже. Что касается использования функции KEEPFILTERS, см. вторую ссылку ниже.\n"
782
+ "Вариант 1: KEEPFILTERS('таблица'[столбец]=\"значение\")\n"
783
+ "Вариант 2: 'Таблица'[Столбец]=\"Значение\""
784
+
785
+ # description
786
+ msgid "Use the DIVIDE function for division"
787
+ msgstr ""
788
+ "Используйте функцию DIVIDE вместо \"/\". Функция DIVIDE разрешает случаи "
789
+ "деления на ноль. Как таковой, рекомендуется использовать во избежание "
790
+ "ошибок."
791
+
792
+ # description
793
+ msgid "Column references should be fully qualified"
794
+ msgstr ""
795
+ "Использование полных ссылок на столбцы упрощает различение ссылок на столбцы"
796
+ " и меры, а также помогает избежать некоторых ошибок. При ссылке на столбец в"
797
+ " DAX сначала укажите имя таблицы, а затем укажите имя столбца в квадратных "
798
+ "скобках."
799
+
800
+ # description
801
+ msgid "Measure references should be unqualified"
802
+ msgstr ""
803
+ "Использование неполных ссылок на меры облегчает различение ссылок на столбцы"
804
+ " и меры, а также помогает избежать некоторых ошибок. При ссылке на меру с "
805
+ "помощью DAX не указывайте имя таблицы. Используйте только название меры в "
806
+ "квадратных скобках."
807
+
808
+ # description
809
+ msgid "Inactive relationships that are never activated"
810
+ msgstr ""
811
+ "Неактивные связи активируются с помощью функции USERELATIONSHIP. Если эта "
812
+ "функция не ссылается на неактивное отношение, оно не будет использоваться. "
813
+ "Следует определить, является ли связь ненужной или активировать связь с "
814
+ "помощью этого метода."
815
+
816
+ # description
817
+ msgid "Remove unnecessary columns"
818
+ msgstr ""
819
+ "Скрытые столбцы, на которые не ссылаются какие-либо выражения DAX, связи, "
820
+ "уровни иерархии или свойства сортировки по, должны быть удалены."
821
+
822
+ # description
823
+ msgid "Remove unnecessary measures"
824
+ msgstr ""
825
+ "Скрытые меры, на которые не ссылаются какие-либо выражения DAX, должны быть "
826
+ "удалены для удобства обслуживания."
827
+
828
+ # description
829
+ msgid "Ensure tables have relationships"
830
+ msgstr ""
831
+ "Это правило выделяет таблицы, которые не связаны с какой-либо другой "
832
+ "таблицей в модели с помощью связи."
833
+
834
+ # description
835
+ msgid "Visible objects with no description"
836
+ msgstr "Группы вычислений не имеют функции, если у них нет элементов расчета."
837
+
838
+ # description
839
+ msgid "Provide format string for 'Date' columns"
840
+ msgstr ""
841
+ "Столбцы типа \"DateTime\", в названии которых есть слово \"Month\", должны "
842
+ "быть отформатированы как \"mm/dd/yyyy\"."
843
+
844
+ # description
845
+ msgid "Do not summarize numeric columns"
846
+ msgstr ""
847
+ "Для числовых столбцов (целочисленных, десятичных, двойных) свойство "
848
+ "SummarizeBy должно иметь значение \"None\", чтобы избежать случайного "
849
+ "суммирования в Power BI (вместо этого создайте меры)."
850
+
851
+ # description
852
+ msgid "Provide format string for measures"
853
+ msgstr "Видимым мерам должно быть назначено свойство format string."
854
+
855
+ # description
856
+ msgid "Add data category for columns"
857
+ msgstr "Добавьте свойство Data Category для соответствующих столбцов."
858
+
859
+ # description
860
+ msgid "Hide foreign keys"
861
+ msgstr "Внешние ключи всегда должны быть скрыты."
862
+
863
+ # description
864
+ msgid "Mark primary keys"
865
+ msgstr ""
866
+ "Установите для свойства Ключ значение True для столбцов первичного ключа в "
867
+ "свойствах столбца."
868
+
869
+ # description
870
+ msgid "Month (as a string) must be sorted"
871
+ msgstr ""
872
+ "Это правило выделяет столбцы месяца, которые являются строками и не "
873
+ "сортируются. Если их не отсортировать, они будут отсортированы в алфавитном "
874
+ "порядке (т.е. апрель, август...). Обязательно отсортируйте такие столбцы, "
875
+ "чтобы они были правильно отсортированы (январь, февраль, март...)."
876
+
877
+ # description
878
+ msgid "Relationship columns should be of integer data type"
879
+ msgstr ""
880
+ "Рекомендуется иметь целочисленный тип данных для столбцов отношений. Это "
881
+ "относится не только к хранилищам данных, но и к моделированию данных."
882
+
883
+ # description
884
+ msgid "Provide format string for \"Month\" columns"
885
+ msgstr ""
886
+ "Столбцы типа \"DateTime\", в названии которых есть слово \"Month\", должны "
887
+ "быть отформатированы как \"MMMM yyyyy\"."
888
+
889
+ # description
890
+ msgid "Format flag columns as Yes/No value strings"
891
+ msgstr ""
892
+ "Флаги должны быть правильно отформатированы как Да/Нет, так как это легче "
893
+ "читается, чем использование целочисленных значений 0/1."
894
+
895
+ # description
896
+ msgid "Objects should not start or end with a space"
897
+ msgstr ""
898
+ "Объекты не должны начинаться или заканчиваться пробелом. Обычно это "
899
+ "происходит случайно и его трудно обнаружить."
900
+
901
+ # description
902
+ msgid "First letter of objects must be capitalized"
903
+ msgstr ""
904
+ "Первая буква в названиях объектов должна быть заглавной, чтобы сохранить "
905
+ "профессиональное качество."
906
+
907
+ # description
908
+ msgid "Object names must not contain special characters"
909
+ msgstr "Имена объектов не должны содержать табуляцию, переносы строк и т.д."