Size: a a a

2020 December 15

i

ilya in learn.java
V
Да не особо
ну мне интересно) я тут гуглил нынче мода вообще на это все
я даже не понимаю что лучше для api gateway взять что то типа spring cloud gateway или zuul, что на счет обмена между микросерсивами kafka\rabbitmq или чего то еще.... вопросов на самом деле много, вот иду потихоньку изучаю
источник

R

Roman in learn.java
Не будьте столь категоричны. Может кто работает с DWH или с почти любой ABS — подтвердят.
Триггеры и процедуры — не есть плохо.
источник

TK

Tatjana Khomjaсkova in learn.java
Roman
Не будьте столь категоричны. Может кто работает с DWH или с почти любой ABS — подтвердят.
Триггеры и процедуры — не есть плохо.
В DWH нет бизнес логики же)
источник

АБ

Артемий Богданов... in learn.java
У нас дофига логики на уровне бд, ничего плохого в этом не вижу
источник

R

Roman in learn.java
Tatjana Khomjaсkova
В DWH нет бизнес логики же)
не подменяйте понятия. Говорили за триггеры
источник

TK

Tatjana Khomjaсkova in learn.java
Roman
не подменяйте понятия. Говорили за триггеры
Выше говорили о том, что триггеры - это плохо, потому что получается именно размазывание бизнес-логики на слой хранения данных. В DWH ее нет, значит и размазывать нечего. Или я не правильно вас поняла?
источник

АБ

Артемий Богданов... in learn.java
Tatjana Khomjaсkova
В DWH нет бизнес логики же)
Как это? ETL процедуры завязаны на бизнес логику
источник

R

Roman in learn.java
Tatjana Khomjaсkova
Выше говорили о том, что триггеры - это плохо, потому что получается именно размазывание бизнес-логики на слой хранения данных. В DWH ее нет, значит и размазывать нечего. Или я не правильно вас поняла?
Так-с, скорее я неправильно понял. Невнимательно месседж прочитал.
источник

TK

Tatjana Khomjaсkova in learn.java
Артемий Богданов
Как это? ETL процедуры завязаны на бизнес логику
ETL это процесс, а DWH - это конечный продукт, витрина данных.  Хотя я не уверена что триггеры нужны и там, я не аналитик данных, не знаю какие там законы в OLAP
источник

TK

Tatjana Khomjaсkova in learn.java
Roman
Так-с, скорее я неправильно понял. Невнимательно месседж прочитал.
Ок :)
источник

R

Roman in learn.java
Ну и как аргумент — любая ABS в любом банке. Чуть больше чем полностью состоит из процедур и триггеров. И всё что связано  с регламентами, кор. проводками — это явная бизнес-логика.
источник

АБ

Артемий Богданов... in learn.java
Tatjana Khomjaсkova
ETL это процесс, а DWH - это конечный продукт, витрина данных.  Хотя я не уверена что триггеры нужны и там, я не аналитик данных, не знаю какие там законы в OLAP
А вот и схема dwh с вики
источник

TK

Tatjana Khomjaсkova in learn.java
Артемий Богданов
А вот и схема dwh с вики
Да, и?
источник

АБ

Артемий Богданов... in learn.java
DWH всегда завязан на ETL/ELT
источник

TK

Tatjana Khomjaсkova in learn.java
Артемий Богданов
DWH всегда завязан на ETL/ELT
Да, потому что ETL - Extract Load Transform процесс, который твои транзакционные данные приводит к форме, в которой ими удобнее манипулировать. Ты мне сейчас что доказать хочешь?)
источник

GV

Gukov Viktor in learn.java
Эд
final var string = "word dog war building cyberpunk is shit";
List<String[]> words = Arrays.stream(string.split(" "))
 .map(word -> word.split(""))
 .collect(Collectors.toList());
Можно сделать немного аккуратнее:
1. Сейчас используется явный знак пробела для разделения, следовательно такой выбор не покроет кейс с двумя пробелами подряд или табом. Поэтому стоит заменить " " на \\s+
2. Так как наш новый regex превысил в длину один символ (и собственно является полноценным регулярным выражением), то split() будет компилировать из него объект Pattern при каждом вызове, что является весьма дорогостоящей операцией. Поэтому можно вынести компиляцию Pattern в static контекст, чтобы она происходила только один раз;
3. Избавиться от дополнительного split в пользу ссылки на метод toCharArray
Итоговый вариант может выглядеть так:
   private static final Pattern DELIMITER_PATTERN = Pattern.compile("\\s+");

   public static void main(String[] args) {
       final String test = "eat sleep  rave\ts repeat";
       final List<char[]> result = getSplitWords(test);
       result.forEach(chars -> System.out.println(Arrays.toString(chars)));
   }

   public static List<char[]> getSplitWords(String stringToSplit) {
       return DELIMITER_PATTERN.splitAsStream(stringToSplit)
               .map(String::toCharArray).collect(Collectors.toUnmodifiableList());
   }
источник

TK

Tatjana Khomjaсkova in learn.java
Roman
Ну и как аргумент — любая ABS в любом банке. Чуть больше чем полностью состоит из процедур и триггеров. И всё что связано  с регламентами, кор. проводками — это явная бизнес-логика.
Сколько слышала про это, такая история всегда про банки. Может это просто вынуждено из-за кучи легаси?
источник

R

Roman in learn.java
Tatjana Khomjaсkova
Сколько слышала про это, такая история всегда про банки. Может это просто вынуждено из-за кучи легаси?
Я не знаю. Воспринимаю как данность.
Есть подозрение, что с много терабайтными таблицами по другому нельзя.))
источник

V

Vlad in learn.java
Roman
Я не знаю. Воспринимаю как данность.
Есть подозрение, что с много терабайтными таблицами по другому нельзя.))
хадуп же, биг дата. Другое дело, что ABS должны быть надежными
источник

TK

Tatjana Khomjaсkova in learn.java
Roman
Я не знаю. Воспринимаю как данность.
Есть подозрение, что с много терабайтными таблицами по другому нельзя.))
Ну да, триггер на базе скорее всего будет работать быстрее. Просто когда говорят о том, что триггеры это зло, имеют ввиду их неочевидность. Про них легко забыть, их не видит разраб, пока пишет код. У меня был один триггер на проекте - ненавидела его всей душой.
источник