문제

URL 열이있는 행이 있습니다.

나는 URL을 도메인 및 경로로 끊는 것을 좋아합니다.BigQuery 구문에서 도메인 (URL)을 사용하여 도메인을 수행 할 수 있습니다.

내 질문은 URL의 경로를 얻는 방법입니다.

e.g. http://www.somedomain.com/x/y/abc

x, y 및 abc를 별도의 columsn으로 얻고 싶습니다.

도움이 되었습니까?

해결책

정규식을 사용하여 필요한 것을 추출 할 수 있습니다

SELECT Regexp_extract(URL,r'^http://www(?:[^/]*)/(.*)') as full_path,
 Regexp_extract(URL,r'^http://www(?:[^/]*)/(?:[^/]*/){0}([^/]*)') as full_path0,
 Regexp_extract(URL,r'^http://www(?:[^/]*)/(?:[^/]*/){1}([^/]*)') as full_path1,
 Regexp_extract(URL,r'^http://www(?:[^/]*)/(?:[^/]*/){2}([^/]*)') as full_path2,
 Regexp_extract(URL,r'^http://www(?:[^/]*)/(?:[^/]*/){3}([^/]*)') as full_path3,
FROM 
(Select 'http://www.somedomain.com/X/Y/abc' as URL)
.

및 MS 로그 파서와의 비교와 관련하여.

  • 로그 파서가 필요로하는 BQ에서 로그 플랫 파일에서 똑바로 실행됩니다. 그것을 1st로드하려면.
  • 로그 파서는 전용 기계에서 실행되는 동안 BQ가 클라우드로 실행되는 동안 서비스 (많은 기계, 얼마나 많은 ...)
  • 공연 현명한 BQ는 상황을 더 빨리하고 사용할 수있는 자원과 관련하여 귀하의 관심이 없습니다. 처리.(로그 파싱은 멀티 스레드를 실행할 수 있습니다. 사용 가능한 CPU 단위, 기계의 많은 캐시를 소비합니다. 실행됩니다)
  • BQ의 정규식 기능은 모든 유연성을 제공합니다. 로그에서 데이터 패턴을 추출합니다.

즐기기

다른 팁

GA_SESSIONS는 URL을 자동으로 분리하는 잎 테이블을 히트

의 모범
http://www.somedomain.com/X/Y/abc

hits.page.pagePathLevel1 will have 'www.somedomian.com/'
hits.page.pagePathLevel2 will have '/X/'
hits.page.pagePathLevel3 will have '/Y/'
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top