Size: a a a

2020 September 18

N

Nikita Blagodarnyy in Data Engineers
Dmitry Zuev
а чо?
or в джойне-это двойной проход/джойн и юнион результатов.
источник

DZ

Dmitry Zuev in Data Engineers
Nikita Blagodarnyy
or в джойне-это двойной проход/джойн и юнион результатов.
надо смотреть план
источник

DZ

Dmitry Zuev in Data Engineers
Nikita Blagodarnyy
or в джойне-это двойной проход/джойн и юнион результатов.
двойной джоин как будто нет?
источник

N

Nikita Blagodarnyy in Data Engineers
для бродкаст джойна это может, кстати, и не проблема.
источник

DZ

Dmitry Zuev in Data Engineers
ну смари
источник

DZ

Dmitry Zuev in Data Engineers
с тебя план
источник

DZ

Dmitry Zuev in Data Engineers
Федор Мануковский
дело в обращении peopleDF("id"), вот такое работает
.join(broadcast(peopleDF.alias("customer_dim")), factDF("cust_id") === $"customer_dim.id", "left")    .join(broadcast(peopleDF.alias("vendor_dim")), factDF("vend_id") === $"vendor_dim.id", "left")
как здесь
источник

DZ

Dmitry Zuev in Data Engineers
Dmitry Zuev
SELECT

CASE WHEN vend_id = id
   THEN name
END vend_name,


CASE WHEN cust_id = id
        THEN name
END cust_name

FROM fact
LEFT JOIN people ON cust_id = id OR vend_id = id
и как здесь
источник

DZ

Dmitry Zuev in Data Engineers
есть возможность сделать?
источник

N

Nikita Blagodarnyy in Data Engineers
Dmitry Zuev
двойной джоин как будто нет?
Нет. первую таблицу-то один раз читаешь.
источник

DZ

Dmitry Zuev in Data Engineers
ну это если тебе движок сам не оптимизирует такое
источник

DZ

Dmitry Zuev in Data Engineers
вот хз хз
источник

А

Алексей in Data Engineers
оракл сделает преобразования конкатенации и в итоге все равно будет 2 join
источник

А

Алексей in Data Engineers
drop table fact1;
create table fact1 as select level as id, mod(level,5) as fk1, mod(level+1,5) as fk2,  '**' as pad from dual connect by level < 100000;
create table dim1 as select level as id, '**' as pad from dual connect by level <= 5;

explain plan for
select *
from fact1 f
join dim1 d on f.fk1 = d.id or f.fk2 = d.id;
SELECT * FROM table(DBMS_XPLAN.DISPLAY);

-------------------------------------------------------------------------------------------------
| Id  | Operation                     | Name            | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT              |                 |   168K|    10M|   158   (2)| 00:00:01 |
|   1 |  VIEW                         | VW_ORE_571BA3FE |   168K|    10M|   158   (2)| 00:00:01 |
|   2 |   UNION-ALL                   |                 |       |       |            |          |
|*  3 |    HASH JOIN                  |                 | 93737 |  6224K|    79   (2)| 00:00:01 |
|   4 |     TABLE ACCESS STORAGE FULL | DIM1            |     5 |   105 |     3   (0)| 00:00:01 |
|   5 |     TABLE ACCESS STORAGE FULL | FACT1           | 93737 |  4302K|    76   (2)| 00:00:01 |
|*  6 |    HASH JOIN                  |                 | 74990 |  4979K|    79   (2)| 00:00:01 |
|   7 |     JOIN FILTER CREATE        | :BF0000         |     5 |   105 |     3   (0)| 00:00:01 |
|   8 |      TABLE ACCESS STORAGE FULL| DIM1            |     5 |   105 |     3   (0)| 00:00:01 |
|   9 |     JOIN FILTER USE           | :BF0000         | 93737 |  4302K|    76   (2)| 00:00:01 |
|* 10 |      TABLE ACCESS STORAGE FULL| FACT1           | 93737 |  4302K|    76   (2)| 00:00:01 |
-------------------------------------------------------------------------------------------------
источник

А

Алексей in Data Engineers
если запретить HJ, то будет NL , у соединения через OR похоже нет эффективного способа соединения. Hive запрещает выполнять такие запросы
источник

M

Makhmut in Data Engineers
Всем привет ,сорри если оффтоп, хочу сгруппировать , но чтобы колонн было 2 вместе с группой. Как это можно сделать ?
источник

AZ

Anton Zadorozhniy in Data Engineers
у вас горизонт завален
источник

AZ

Anton Zadorozhniy in Data Engineers
(извините)
источник

DZ

Dmitry Zuev in Data Engineers
Баланс белого тоже так себе
источник

DZ

Dmitry Zuev in Data Engineers
Ну и не понятно что нужно сделать
источник