현재 키워드 측정 기준 표를 작성하는 방법을 결정하려고합니다. Google은 웹 사이트 방문을 추적하고 있으며 해당 사이트의 검색 엔진을 통해 검색하는 데 가장 많이 사용되는 키워드와 사이트 방문시 사용 된 검색 용어 (price> $ 100, 리뷰> 별 4 개 등). 키워드가 완전히 동적이어서 무한 수의 조합으로 사용할 수 있으므로 이러한 키워드를 저장하는 방법을 결정하는 데 어려움을 겪고 있습니다. 페이지를 볼 때마다 레코드가 포함 된 페이지 뷰 사실 테이블이 있습니다. 나는 정규 표현식으로 구문 분석 할 수있는 구분 된 목록의 모든 검색어를 포함하는 소스를 가져오고 있습니다. 키워드 수가 페이지 뷰와 크게 다를 수 있기 때문에 데이터베이스에 저장하는 방법을 모르겠습니다. 페이지 뷰로. 나는 이것이 MSSQL 테이블에 그것을 과장하려고하는 NOSQL 솔루션에 더 적합 할 수 있다고 생각하고있다. 그러나 나는 모른다. 어떤 도움이라도 대단히 감사합니다!클릭 스트림 키워드 측정 기준
답변
데이터 분석 방법에 따라 몇 가지 해결책이 있습니다.
하지만 분석하려는 데이터의 양에 대해서는 각 키워드를 저장하기 위해 사실의 PK를 사용하는 테이블을 만들뿐입니다.
FACT_PAGEVIEW_ID bigint -- Surrogate key of fact table. Or natural key if you don't have a surrogate.
KEYWORD varchar(255) -- or whatever max len the keywords are
VALUE varchar(255)
이 테이블의 입도는 ID/키워드 조합 당 1 행입니다. 동일한 키워드를 쿼리 문자열에서 여러 번 허용하는 경우 값을 추가해야 할 수도 있습니다.
키워드를 사용하여 페이지 뷰별로 키워드를 그룹화하거나 페이지 뷰로 시작한 다음 필터링하여 키워드로 식별 할 수 있습니다.
다른 옵션은 키워드 차원과 "키워드 그룹"이있는 여러 개의 브리지 테이블이지만 모든 조합을 사용할 수 있으므로이 방법이 더 빠를 가능성이 큽니다. 그 길. "가장 자주 사용되는 키워드의 조합"과 "사용자 기반의 상위 10 %가 가장 많이 사용하는 키워드"와 같은 대부분의 질문에이 구조로 응답 할 수 있습니다.
그래서 본질적으로 방문 사실 테이블을이 새로운 키워드 사실 테이블에 대한 차원의 정렬이나 반대의 차원으로 사용합니다 (다른 방법 대신 차원에 사실의 PK를 저장하는 경우). 필자는 가능한 한 킴볼의 방법론에 가깝게 노력하고 있지만이 방법이 효과가 있다고 생각합니다. 다른 누군가가 다른 아이디어를 가지고 있다면, 나는 그 (것)들을 듣는 것을 확실히 좋아할 것입니다. 감사합니다 N 서쪽과 usr! – crosan
예. 키워드 수가 적고 그룹화 할 다른 속성이있는 경우에도 키워드 측정 기준을 원할 수 있습니다. KEYWORD를 KEYWORD_ID로 바꾸십시오. "value"는 "텍스트"측정 값입니다. –
일반적으로 OLTP 환경 에서처럼 두 번째 테이블에 저장하는 것은 어떻습니까? – usr
두 번째 테이블? 내가 따라야할지 모르겠다. 스타 스키마에서 의미가 있니? 이 검색 용어를 쉽게 검색 할 수있는 차원으로 만들고 싶습니다. 주어진 작업에 대해 단일 열에서 "minyear = 2000, minprice = 100, stars = 4, category = new"와 같이 작업해야하는 경우 $ 100 이상이고 별 4 개를 초과하는 항목을 검색하는 것은 어렵습니다. – crosan
내 말은 방문을'(ID INT PK, ...)'및'VisitKeywords (VisitID INT PK, 키워드 문자열 PK, 값 문자열)'에 저장한다는 것입니다. 이는 표준 솔루션처럼 보입니다. 그게 효과가 있니? – usr