Надежный метод для проверки фактического размера данных в горячем кэше - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть таблица с 1-дневной политикой горячего кэширования. И с этим предположим, что использование кэша кластера ADX составляет менее 80%. Учитывая это, какой надежный способ точно определить объем кеш-памяти (ТБ), фактически занятый таблицей? Я предложил следующие два метода, но они оба возвращают существенно разные числа: -

.show table <TableName> extents hot | summarize sum(ExtentSize)/pow(1024,4)
.show table <TableName> extents | where MaxCreatedOn >= ago(1d) | summarize extent_size=sum(ExtentSize) | project size_in_TB=((extent_size)/pow(1024,4))

Вторая команда возвращает число более чем в 10 раз больше, чем первый. Как это может быть так по-другому?

1 Ответ

2 голосов
/ 26 апреля 2020

Обе команды, которые вы выполнили, должны иметь одно и то же значение, если:

  1. вы выполнили их одновременно (или быстро, одну за другой)
  2. эффективная политика кэширования действительно составляет 1 день (вы убедились, что это действительно так?)

Независимо от этого - наиболее эффективный способ получить эту точку данных с помощью следующей команды:

.show table TABLENAME details
| project HotExtentSizeTb = HotExtentSize/exp2(40), CachingPolicy

Вот пример из моей таблицы с политикой кэширования 4 дня (установленной на уровне таблицы) и политикой хранения с периодом мягкого удаления 3650 дней:

// option 1
// --------
.show table yonis_table extents hot
| summarize HotExtentSizeTb = sum(ExtentSize)/exp2(40)

  // returns: HotExtentSizeTb: 0.723723856871402   <---

// option 2: least efficient
// -------------------------
.show table yonis_table extents
| where MaxCreatedOn >= ago(4d)
| summarize HotExtentSizeTb = sum(ExtentSize)/exp2(40)

  // returns: HotExtentSizeTb: 0.723723856871402   <---

// option 3: most efficient
// ------------------------
.show table yonis_table details
| project HotExtentSizeTb = HotExtentSize/exp2(40), CachingPolicy, RetentionPolicy

   // returns: 
   HotExtentSizeTb: 0.723723856871402,             <---
   CachingPolicy: {
     "DataHotSpan": "4.00:00:00"
   },
   RetentionPolicy: {
     "SoftDeletePeriod": "3650.00:00:00",
     "Recoverability": "Enabled"
   }
...