Как переписать json проекта

Поняли, что неправильно назвали Источник данных (dataset в Dremio), а уже подключили и настроили виджеты?

Было изменение в иерархии уровней папок проекта? Сделали пет-проект и поняли, что он достоин публикации?

Обычно мы переподключали виджеты к новому источнику, с нуля настраивая метрики, измерения и переменные.

Хватит это терпеть!

В Insight-редакторе существует способ, где мы в настройках проекта (аппа)

можем включить «Режим разработчика»

и переписать json проекта.

Наш заменяемый датасет: “_test”.“got_folder”.“svg_peace”

На что нужно заменить: demo.realeses.“l1_got”.“svg_peace”

Существует 3 способа переписывания.

Первый способ самый надежный, по словам разработчиков, плюс меняет только один виджет, а не всю страницу, как в других способах.

  1. Нажимаем «Копировать свойства». (см.скриншот выше, третий)

  2. Открываем любой Блокнот, Word и другие текстовые редакторы, вставляем текст.

  3. Ищем (глазами, сочетанием Ctrl+F) “$from”: [ ], . Это ссылка на наш dataset в Dremio.

  4. Меняем на нужный нам путь , добавляя имена\папки\подпапки в кавычках “”, отделяя их запятыми (для простоты вы можете подключить рядом виджет к новому источнику, тоже нажать «Импортировать свойства», вставить в текстовый редактор, взять и подставить путь “$from”: [ ] оттуда.
    Screenshot_6

  5. Идем обратно в редактор, нажимаем «Импортировать свойства из буфера».

  6. Идем в Источник, проверяем изменился ли путь в заголовке.

Но этот же плюс оказывается минусом при массовой замене

Второй способ (массовая замена):

В Источнике данных виджета копируем путь (наименование dataset в Dremio)

и либо в текстовом редакторе для удобства, либо в Панели разработчика производим манипуляции (текст представлен ниже):

  1. удаляем слэши(/) - заменяем их на запятые.
  2. удаляем пробелы, иначе ошибка как на картинке
  3. каждый элемент пути оборачиваем в кавычки (“”)
  4. жмем «заменить». Выходит количество замен на странице
  5. сохраняем страницу
  6. обновляем проект (апп)
  7. проверяем наименование

Наименование

test / gotfolder / svg_peace

Переписанное для “найти” наименование

“_test”,“got_folder”,“svg_peace”

Новое наименование

demo / realeses / l1_got / svg_peace

Переписанное для “заменить” наименование

“demo”,“realeses”,“l1_got”,“svg_peace”

Третий способ самый легкий, но ненадежный.

Работает при маленьких изменениях, наподобие изменения иерархии папки с «l1» уровня на «l4».

Старый путь:

some_folder / project_folder / L1 / l1_dataset_name

Новый путь:

some_folder / project_folder / L4 / l4_dataset_name

Screenshot_12

Примечание: Заметьте, замены будет две в примере, так как не учитывается регистр для L1

Мы просто вставляем в окошках «найти» и «заменить» требуемое и жмем «заменить».

Если у вас есть сочетание букв «l1» в колонке Источника данных , названии Метрики\Измерении, свойстве и других местах, наблюдаем как что-то выходит из строя и идем чинить.

Все три способа переписывания json работают в рамках одной страницы аппа.

Не забывайте сделать клон страницы перед переписыванием!!!

7 лайков

Как я понял, таким образом я могу переписать json одной страницы аппа (или конкретного виджета на ней). А если у меня на разных страницах аппа виджеты используют один датасет и мне нужно его изменить, могу ли я каким-то образом одним подобным кейсом внести правки на все страницы этого аппа? Что бы не править каждую страницу отдельно?

Раскопировать на весь апп замену источника - такого функционала нет сейчас. Но идея хорошая.

1 лайк

Есть способ круче, проще и понятнее.
Надо просто весь проект экспортировать архивом к себе, распаковать и открыть в любом редакторе, где можно сделать поиск-замену. Если открыть распакованную папку в Visual Studio Code, то можно и вовсе сразу везде сделать замену.
Потом импортировать проект обратно.
Но минус в том, что это будет рядом уже новый другой проект, идентификатор его будет другой.