powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Поиск в справочнике для ETL. Быстрее чем индексное сканирование.
3 сообщений из 3, страница 1 из 1
Поиск в справочнике для ETL. Быстрее чем индексное сканирование.
    #39543297
Skoffer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть такая функция для генерирования суррогатных ключей в ELT модуле.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
create or replace function etl_utils.get_referrer_key(_referrer_source_type text, _referrer_source_name text)
  returns bigint
  STABLE
as
$$
DECLARE
 _referrer_key bigint;
BEGIN
  if _referrer_source_type is null and _referrer_source_name is null then
    return -1;
  end if;
  
  select referrer_key
   into _referrer_key
  from t_referrer_dim
  where referrer_source_type = _referrer_source_type
        and referrer_source_name = _referrer_source_name;
    
  return _referrer_key;
END;
$$ language plpgsql;


или такая же функция только language sql.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create or replace function etl_utils.get_referrer_key(_referrer_source_type text, _referrer_source_name text)
  returns bigint
  STABLE
as
$$
select coalesce(
                 (
                  select referrer_key
                    from t_referrer_dim
                  where referrer_source_type = _referrer_source_type
                            and referrer_source_name = _referrer_source_name
                 ),
                 -1
                )

$$ language sql



Функция делает индексные чтения для незнакомых значений и, по идем кеширует как-то результаты, благодаря STABLE.

Вопрос : какими средствами, только используя postgresql (можно другие языки кроме plpgsql), можно перенести этот процесс полностью в оперативную память?
Чтобы один раз загрузить справочник в хеш таблицу и потом сравнивать значения с этой таблицей.

Заранее благодарен.
...
Рейтинг: 0 / 0
Поиск в справочнике для ETL. Быстрее чем индексное сканирование.
    #39543407
Skoffer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Skoffer,

читаю свой же вопрос и думаю. "Так может hash join?"
...
Рейтинг: 0 / 0
Поиск в справочнике для ETL. Быстрее чем индексное сканирование.
    #39544609
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SkofferSkoffer,

читаю свой же вопрос и думаю. "Так может hash join?"
не генерирования, а лукапа ключей!!!
Конечно джоинить весь факт на дименшн один раз таки быстрее чем делать мильён поисков.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Поиск в справочнике для ETL. Быстрее чем индексное сканирование.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]