Итак, я пытаюсь объединить два одинаковых набора данных в один набор данных в Snowflake, обеспечивая уникальность в объединенном наборе данных ..
Набор данных1 - Набор данных цели GA
Столбцы:
ID Unique ID for each record in the dataset
UserID ID for each user in the dataset
URL URL the Goal occurrred on
Time DateTime, aggregated to the nearest minute, that the exit goal occured in
Goals Number of goals triggered by the row
Набор данных2 - внутренний веб-трафик c набор данных
Столбцы:
ID Unique ID for each record in the dataset
UserID ID for each user in the dataset
URL URL of the pageview/pageload event
Time DateTime, to nanosecond, that the pageview/pageload event occurred
Известные условия
В любом наборе данных могут быть записи, которые не существуют в другом.
Цель для третьего набора данных
Создать набор данных, содержащий:
Dataset1.ID
Dataset2.ID
ГДЕ нет дублирование Dataset1.ID
ГДЕ нет дублирования DATAset2.ID
ГДЕ каждый экземпляр Dataset1.ID и каждый экземпляр Dataset2 .ID включен в Dataset3, независимо от того, есть ли совпадение в другом наборе данных.
Что я пробовал до сих пор:
Я начал с Dataset1, и присоединился к этому в Dataset2 на основе:
UserID
URL
Time (where the time in Dataset2 was within 4 minutes of Dataset1 - this is due to the systems running on different servers and platforms, which introduces a time difference in addition to the aggregated time issue).
Где я получаю несколько попаданий, я выбираю min ID для Набор данных 2 для каждого идентификатора в наборе данных 1.
Это привело к случаям, когда нескольким идентификаторам из набора данных 1 был присвоен один и тот же идентификатор из набора данных2, который я хочу предотвратить.
Я не использовал построить это, но единственное решение, которое я могу придумать, чтобы преодолеть это, состоит в том, чтобы обрабатывать каждую запись в Dataset1 индивидуально и идентифицировать идентификатор из Dataset1 - когда есть совпадение, выберите самый низкий идентификатор и запишите его в новый столбец в Набор данных 1, затем также запишите идентификатор из набора данных1 во вновь сопоставленный идентификатор из набора данных 2 в новый столбец в наборе данных 2. Затем, когда я возьму следующую строку из Dataset1, попытайтесь связать его только с Dataset2, где Dataset1 еще не установлен в Dataset2.
Надеюсь, это имеет смысл ...
Заранее спасибо Скотт