2023 패캠 수강후기 이벤트가 있어서 글을 써봅니다.

- 실시간 데이터 처리 위한 Spark & Flink & Kafka

 

회사에서 실시간 스트리밍 처리를 위해 Flink를 도입하였는데, 

대부분의 자료들이 영어라 학습이 더딘것도 있고... 좀더 빠르게 습득하기 위해 해당 강좌를 수강하였습니다.

(회사에서 지원 해주면 좋을텐데...ㅠㅠ)

 

수강 후기

처음에 딱 들어갔을 때, 35시간의 방대한 분량에 말문이... (엄청 많은 지식을 공유주신 강사님께 감사감사..)


내 주요 목표는 Flink 학습이였기에, Part 4. 스트림 프로세싱 부터 본격적으로 들었다.
시작은 이론. 자세하게 설명하지는 않고 개관을 잡고 가는 느낌~.
ch02-02 부터 기대했던 코드 기반 수업이 시작되었습니다.
하나하나 따라하다보니 건질게 많다는 생각이 드네요!


목표, 기대평

싼 금액은 아니여서 이번에는 꼭 완강을 목표로 해야겠다 생각하며

틈틈히 듣고 있습니다!

앞으로 남은 코드 수업을 다 습득하여 Flink 중급자 이상의 실력이 쌓이길! 

(내년엔 이직^^)

 

추가로,

좋은 점은 디스코드 방이 있어서 이곳에서 모르는 것을 질문할수 있습니다.

 

 

다음에는 끝까지 듣고 또 완강 후기를 남겨보고 싶습니다!

 

 

'본 게시물은 패스트캠퍼스 수강 후기 이벤트 참여를 위해 작성되었습니다'

'IT 개발 > 데이터 엔지니어(Data Engineer)' 카테고리의 다른 글

Tableau UpdateUserStartPage with Full Screen  (0) 2022.01.16
태블로  (0) 2021.08.09
BigQuery  (0) 2021.07.02

태블로 시작 화면을 변경 가능하다.

 

시작화면 셋팅 정보

  • Tableau > Setting > Start Page

  • 변경하는 방법 (how to change it) : 시작하고자 하는 화면에서 우측상단 > 시작페이지 설정 > 본인전용(내 화면만 변경), 모든 서버 사용자용 (모든 사용자에게 적용)

 근데 막상 시작화면으로 넘어가보면 상단에 도구창이 존재한다.

어떻게 도구창을 없앨 수 있을까?

  • /views/_0/sheet0  해당 URL을 다음과 같이 변경한다.
  • /views/_0/SiteMap?:embed=yes&:tabs=no 

도구창이 사라졌다!

 

그럼 StartPage에 아래 주소로 등록하면 된다!

  • /views/_0/SiteMap?:embed=yes&:tabs=no

화면에서는 등록이 안되는 것 같아서 /POST API를 날려서 적용하기로 한다.

POST API 정보는 아래와 같다.

 

POST MAN을 사용해도 되나 JMeter를 통해 API를 날리기로 했다.  

 

JMeter > File Open > JMX  파일 선택

자동으로 입력된 설정 정보와 Thread Group 안의 Test를 볼 수 있다.

내가 필요한 api는 (updateUserStartPage와 updateStringServerSetting) 두가지이므로 나머지는 삭제. (두 api중 하나만 쓴다..)

1) updateStringServerSetting 모든 사용자의 화면에 적용

2) updateUserStartPage 내 화면에만 적용

 

그리고 Thread Group의 옵션은 1 / 1 / 1 (1번만 api를 날릴 것 이기때문)

Thread Group에 View Results Tree를 넣고 확인 해 본다.

파란불 떠야 정상 / 빨간불은 실패.. session_id 나 xsrf-token을 잘 확인.

 

 

Ref.

태블로 api 리스트!!

https://viziblydiffrnt.github.io/vizportal.html#sites

'IT 개발 > 데이터 엔지니어(Data Engineer)' 카테고리의 다른 글

패스트캠퍼스 + 온라인 (2023 수강후기 이벤트)  (0) 2023.12.11
태블로  (0) 2021.08.09
BigQuery  (0) 2021.07.02

Ch03.

 01. 데이터 준비 - 2 : 조인, 관계, 블랜딩, 관계

 02. 필터 : Order of Operations

 

 

출력

  SELECT
  CAST(42 AS STRING) => '42'
  , CAST('42' AS INT64) => 42
  , FORMAT('%03d', 42) => 042
  , FORMAT('%5.3f', 32.457842) => 32.458
  , FORMAT('%5.3f', 32.4) => 32.400
  , FORMAT('**%s**', 'H') => **H**
  , FORMAT('%s-%03d', 'Agent', 7) => Agent-007

 


문자열 조작 함수

SELECT
  ENDS_WITH('Hello', 'o') -- true
  , ENDS_WITH('Hello', 'h') -- false
  , STARTS_WITH('Hello', 'h') -- false
  , STARTS_WITH('Hello', 'H') -- true
  , STARTS_WITH('Hello', 'Hel') -- true
  , STRPOS('Hello', 'e') -- 2
  , STRPOS('Hello', 'l') -- 3
  , STRPOS('Hello', 'll') -- 3
  , STRPOS('Hello', 'f') -- 0 (for not-found)
  , SUBSTR('Hello', 2, 4) -- ello
  , CONCAT('Hello', ' World') -- Hello World

변환 함수

SELECT
  LPAD('Hello', 10, '*') -- 왼쪽에 *가 추가된다
  , RPAD('Hello', 10, '*') -- 오른쪽에 *가 추가된다
  , LPAD('Hello', 10) -- 왼쪽에 공백이 추가된다
  , LTRIM('   Hello   ') -- 왼쪽의 공백이 제거된다
  , RTRIM('   Hello   ') -- 오른쪽의 공백이 제거된다
  , TRIM ('   Hello   ') -- 양쪽의 공백이 제거된다
  , TRIM ('***Hello***', '*') -- 양쪽의 *이 제거된다
  , REVERSE('Hello') -- olleH

정규 표현식

SELECT
  column
  , REGEXP_CONTAINS(column, r'\d{5}(?:[-\s]\d{4})?') has_zipcode
  , REGEXP_CONTAINS(column, r'^\d{5}(?:[-\s]\d{4})?$') is_zipcode
  , REGEXP_EXTRACT(column, r'\d{5}(?:[-\s]\d{4})?') the_zipcode
  , REGEXP_EXTRACT_ALL(column, r'\d{5}(?:[-\s]\d{4})?') all_zipcodes
  , REGEXP_REPLACE(column, r'\d{5}(?:[-\s]\d{4})?', '*****') masked
FROM (
  SELECT * FROM UNNEST([
     '12345', '1234', '12345-9876', 
     'abc 12345 def', 'abcde-fghi',
     '12345 ab 34567', '12345 9876'
  ]) AS column
)

 

행     column                   has_zipcode  is_zipcode   the_zipcode        all_zipcodes           masked

1 12345 true   true 12345 12345 *****  
2 1234 false false null   1234  
3 12345-9876 true true 12345-9876 12345-9876 *****  
4 abc 12345 def true false 12345 12345 abc ***** def  
5 abcde-fghi false false null   abcde-fghi  
6 12345 ab 34567 true false 12345 12345 ***** ab *****  
          34567    
7 12345 9876 true true 12345 9876 12345 9876 *****

정규식 관련 문서 : https://github.com/google/re2/wiki/Syntax

 

google/re2

RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library. - google/re2

github.com

 

타임 스탬프 처리

SELECT t1, t2, TIMESTAMP_DIFF(t1, t2, MICROSECOND)
FROM (SELECT
  TIMESTAMP "2017-09-27 12:30:00.45" AS t1,
  TIMESTAMP "2017-09-27 13:30:00.45+1" AS t2
)

결과 동일

SELECT
  fmt, input, zone
  , PARSE_TIMESTAMP(fmt, input, zone) AS ts
FROM (
  SELECT '%Y%m%d-%H%M%S' AS fmt, '20181118-220800' AS input, '+0' AS zone
  UNION ALL SELECT '%c', 'Sat Nov 24 21:26:00 2018', 'America/Los_Angeles'
  UNION ALL SELECT '%x %X', '11/18/18 22:08:00', 'UTC'
)

 

1 %Y%m%d-%H%M%S 20181118-220800 +0 2018-11-18 22:08:00 UTC  
2 %c Sat Nov 24 21:26:00 2018 America/Los_Angeles 2018-11-25 05:26:00 UTC  
3 %x %X 11/18/18 22:08:00 UTC 2018-11-18 22:08:00 UTC
SELECT
  ts, fmt
  , FORMAT_TIMESTAMP(fmt, ts, '+6') AS ts_output
FROM (
  SELECT CURRENT_TIMESTAMP() AS ts, '%Y%m%d-%H%M%S' AS fmt
  UNION ALL SELECT CURRENT_TIMESTAMP() AS ts, '%c' AS fmt
  UNION ALL SELECT CURRENT_TIMESTAMP() AS ts, '%x %X' AS fmt
)

 

1 2021-07-02 02:18:59.790695 UTC %Y%m%d-%H%M%S 20210702-081859  
2 2021-07-02 02:18:59.790695 UTC %c Fri Jul 2 08:18:59 2021  
3 2021-07-02 02:18:59.790695 UTC %x %X 07/02/21 08:18:59

 

 

+ Recent posts