2012-05-01 4 views
4

로그 분석을 BigQuery와 함께 시도하고 있습니다. 특히 BigQuery에 로그 데이터를 보낼 appengine 앱과 javascript 클라이언트가 있습니다. bigquery에서 전체 로그 텍스트를 한 열에 저장하고 중요한 필드를 다른 열로 추출합니다. 그런 다음 해당 열에 대해 임시 쿼리를 수행 할 수 있기를 원합니다.로그 분석을 위해 BigQuery 사용

두 질문 :

1)의 BigQuery에게인가이 사용 사례에 특히 좋고, 특히 나쁜? 2) 회전 로그를 설정하려면 어떻게해야합니까? 나는. 마지막 N 개의 로그 또는 마지막 XGB의 로그 데이터 만 저장하려고합니다. 삭제가 지원되지 않습니다. 그냥 알다시피

답변

5
  1. 라 불리는 앱 엔진 맵리 듀스를 통해 BigQuery에에 앱 엔진 로그 데이터를 이동의 우수한 데모 log2bq (http://code.google.com/p/log2bq/)

  2. 있다
  3. Re : "유스 케이스"- 스택 오버플로는 최고 또는 최악의 판단을위한 좋은 장소가 아니지만 BigQuery는 Google에서 내부적으로 사용되어 매우 큰 로그 데이터를 분석합니다.

  4. 전체 로그 텍스트를 단일 열에 저장하는 장점이 없습니다. 회전하는 "로그"를 설정해야한다고 결정하면 별도의 BigQuery 테이블 (일일 1 개)을 생성하여 일별 로그 덤프를 처리 한 다음 오래된 테이블이 삭제되면이를 삭제할 수 있습니다. Table.delete 메서드에 대한 자세한 내용은 https://developers.google.com/bigquery/docs/reference/v2/tables/delete을 참조하십시오.

+0

1. 감사 – aloo

+0

2. 그 점에 대해 미안합니다 – aloo

+1

3. 전체 텍스트를 한 열에 저장하고 유용한 정보를 추출하여 다른 열에 저장하는 장점은 필요한 경우 사전 처리 된 원본 로그 항목을 볼 수 있다는 것입니다. 회전 로그를 설정하려면 하루에 하나의 표를 사용하는 경우 여러 날 동안 어떻게 쿼리해야합니까? – aloo

1

이것을 구현 한 후에 우리가 만든 프레임 워크를 오픈 소스로 결정했습니다. 프레임 워크의 세부 정보는 여기에서 확인할 수 있습니다. http://blog.streak.com/2012/07/export-your-google-app-engine-logs-to.html

+0

@aloo를 공유해 주셔서 감사합니다! –

+0

블로그 게시물 링크가 더 이상 작동하지 않습니다. "죄송합니다.이 블로그에서 찾고 있던 페이지가 없습니다." –

0

Google App Engine (Google Cloud) 프로젝트의 로그를 BigQuery에 포함 시키려면 Google에서 새 Cloud Logging 시스템에이 기능을 추가했습니다. 그것은 그들로 요약 "로그 내보내기" https://cloud.google.com/logging/docs/install/logs_export

로 알려진 베타 기능입니다 :

수출하여 Google Compute Engine의 로그와 구글 클라우드 스토리지 버킷, 구글의 BigQuery로 구글 앱 엔진 로그 데이터 세트, Google 클라우드 Pub/Sub 주제 또는이 세 가지 조합으로 구성됩니다.

우리는 파이썬 GAE 프로젝트에서 "BigQuery로 스트림 응용 프로그램 엔진 로그"기능을 사용합니다. 이렇게하면 우리 앱의 로그가 BigQuery에 직접 전송되어 BigQuery 데이터 세트에 거의 실시간으로 로그 레코드가 제공됩니다.

내 보낸 로그 사용 방법을 설명하는 페이지도 있습니다. https://cloud.google.com/logging/docs/export/using_exported_logs

우리가 (예를 들어 지난 주) 여러 일 동안 BigQuery에 수출 로그를 조회 할 ,이 같은 FROM 절을 사용하여 SQL 쿼리를 사용할 수 있습니다 포인터에 대한

FROM 
    (TABLE_DATE_RANGE(my_bq_dataset.myapplog_, 
     DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY'), CURRENT_TIMESTAMP())) 
관련 문제