묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결다양한 사례로 익히는 SQL 데이터 분석
사용자별 월별 세션 접속 횟수의 구간별 분포 집계 SQL - where절
선생님 안녕하세요?강의 잘 보고 있습니다.월 말일 기준으로 2일전에 생성한 user를 제외하고, session 수를 카운트 하기 위해서 where 절 안에 아래와 같이 수업시간에 말씀주셨었는데요. select a.user_id, date_trunc('month', visit_stime)::date as month, count(*) as monthly_user_cntfrom ga.ga_sess ajoin ga.ga_users b on a.user_id = b.user_idwhere b.create_time <= (date_trunc('month', b.create_time) +interval '1 month' - interval '1 day')::date -2group by a.user_id, date_trunc('month', visit_stime)::date 이 부분에 의하면, 말일 기준으로 2일 전부터 말일까지 create된 user의 경우, 모든 month에서 session 데이터가 필터링 되는데 의도하신 바가 맞으신지요? 어떤 user가 9월 29일에 create 하고, 9월 30일에 session 기록이 있으면, 이건 count되지 않고,10월 3일의 session 기록은 10월에 count하는 것이 의도하신 것이 아닌지요?그럴경우에는 아래와 같이 where 절을 수정해야 count가 될 것 같아요.where b.create_time <= (date_trunc('month', a.visit_stime)+interval '1 month' - interval '1 day')::date -2
-
미해결Airflow 마스터 클래스
"Python Operator에서 Xcom 사용" 강의 질문
안녕하세요.강의 잘 듣고 있습니다. "Python Operator에서 Xcom 사용" 강의에서 task flow가python_xcom_push_by_return = xcom_push_result() xcom_pull_2(python_xcom_push_by_return) python_xcom_push_by_return >> xcom_pull_1()이렇게 되고, 그래프가 python_xcom_push_by_return -> xcom_pull_2python_xcom_push_by_return -> xcom_pull_1 이렇게 그려지는데, 이 경우 처리도 병렬적으로 되나요?아니면 그래프만 저렇게 나오고 실제 동작은파이썬 동작하는 것처럼 윗줄이 먼저 실행되어서 실제로는python_xcom_push_by_return -> xcom_pull_2 -> xcom_pull_1이렇게 실행이 되나요??
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
강의내용 따라가고있는데 에러가 발생되었습니다. 혹시 몰라 깃헙 코드도 가져와서 해봤는데 동일한 오류이고 js:818에 대한 레퍼런스도 부족해서 문의 남깁니다 ㅠㅠ
imsang-gyu@limsanggyu-MacBookPro nodejs-docker-app % docker run -p 5000:8080 limsanggyu/nodejsinternal/modules/cjs/loader.js:818 throw err; ^Error: Cannot find module '/nodemon' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15) at Function.Module._load (internal/modules/cjs/loader.js:667:27) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) at internal/main/run_main_module.js:17:47 { code: 'MODULE_NOT_FOUND', requireStack: []}
-
해결됨15일간의 빅데이터 파일럿 프로젝트
휴 설치 에러 yum install scl-utils
yum install centos-release-scl 까지는 설치가 됐는데utils 부분에서 에러가 나네요 ㅠㅠ 어떻게 해결하나요? 그런데 python27은 정상적으로 설치가 됐어요.. 문제없는건가요? 추가로 휴 설치 이후 HBase 탭에서 DriverCarInfo에 들어왔는데 실시간 적재 데이터가 하나도 없는데 실시간 적재 데이터를 다시 수행해야 하는 건지 아니면 데이터가 날라간건지 궁금합니다 .. ㅠㅠ
-
해결됨카프카 완벽 가이드 - 코어편
토픽에 데이터가 없을 때 offset이 0이 되는 현상 문의
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 선생님 안녕하십니까!강의를 열심히 듣고 있는 수강생입니다. 다름이아니라, 토픽에 데이터가 없을 때 offset이 0이 된다는 로그는 어디서부터 기인하는 것인지 궁금하여 질문 드립니다. 제가 이해하기로 AUTO_COMMIT false가 되어있으면 명시적으로 commit을 호출하지 않으면 commit이 되지 않는 것으로 알고있습니다 (테스트도 해보았습니다.) 하지만, 강의 6:00경 시나리오.즉, 토픽에 아무런 데이터가 없는 상태에서 컨슈머만 켠 케이스에서 저는 커밋(commitSync)을 하지 않았는데 poll을 몇번 돌다보면 offset이 0이 되었다는 로그가 발생합니다.(실제로 __consumer_offsets-* 파일에는 offset이 기록되진 않고, 그래서 컨슈머를 껐다 켜면 offset 0부터 읽습니다) 저는 commit을 한적이 없으므로 실제로 __consumer_offsets에는 0으로 기록되지 않는데, 저 로그에 있는 offset이 0은 어디서부터 오는 것일까요? +) 코드상으로는 poll 시점에 updateAssignmentMetadataIfNeeded (maybeSeekUnvalidated) 에서 해당 로그가 찍히는데요, 이건 무슨 정책일까요? 관련 자료가 있으면 공유주셔도 감사합니다. // offset=0 설정이 되어버림 [main] INFO org.apache.kafka.clients.consumer.internals.Fetcher - [Consumer clientId=consumer-group-pizza-assign-seek-maintenance-6-1, groupId=group-pizza-assign-seek-maintenance-6] Fetch position FetchPosition{offset=10, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader=Optional[localhost:9092 (id: 0 rack: null)], epoch=0}} is out of range for partition pizza-topic-0, resetting offset [main] INFO org.apache.kafka.clients.consumer.internals.SubscriptionState - [Consumer clientId=consumer-group-pizza-assign-seek-maintenance-6-1, groupId=group-pizza-assign-seek-maintenance-6] Resetting offset for partition pizza-topic-0 to position FetchPosition{offset=0, offsetEpoch=Optional.empty, currentLeader=LeaderAndEpoch{leader=Optional[localhost:9092 (id: 0 rack: null)], epoch=0}}. 테스트한 코드 일부 공유드립니다.(필요할 설정들을 했으며, 정말 커밋이 안되고 있는지 확인하기 위해 records.count()>100일 때만 명시적으로 커밋을 한 코드입니다)props.setProperty(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG, "false"); TopicPartition topicPartition = new TopicPartition(topicName, 0); kafkaConsumer.assign(List.of(topicPartition)); kafkaConsumer.seek(topicPartition, 10L);while(true) { ConsumerRecords<String, String> records = kafkaConsumer.poll(Duration.ofMillis(1_000L)); for(ConsumerRecord<String, String> record: records) { log.info("record key: {}, partition: {}, recordOffset: {}", record.key(), record.partition(), record.offset()); } if (records.count() > 100 ){ kafkaConsumer.commitSync(); log.info("commit sync called"); } } 감사합니다 ^^
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
heartbeat에 관하여 질문이 있습니다.
강사님 heartbeat관련 문제를poll 사이즈를 늘려도 해결이 안되는데 보통 어떤 상황에 맞게 어떻게 설정하여 해결을 하나요?지금 전 aiokafka를 사용중입니다
-
미해결데이터베이스 중급(Modeling)
강의자료 section 04 인덱스 및 최적화
강사님의 강의를 정말 감사하게 잘 듣고 질문이 생겨서 여쭈어보려고합니다.인강교재를 올려주셔서 이것을 토대로 들으면서비교도하면서 보고 블로그에 정리도 하려고 하는데 section 04 인덱스 및 최적화 라는 폴더가있고 안에 내용도 들어가있는데 강의에서는 이것에 대한설명과 이것에대한 설명이 왜 없는지 이유를 말씀을 안 해주신 것 같습니다. 만약 말씀을 해주셨는데 제가 못 찾은 것이라면 영상의 위치만 알려주시면 제가 강의를 다시 듣겠습니다
-
미해결다양한 사례로 익히는 SQL 데이터 분석
postgres db > 도구 > 복원까지 따라했는데 start 버튼이 비활성화되어있습니다ㅠ
안녕하세요!dbeaver에 postgres backup 파일을 연결시키는 과정에서똑같이 따라했는데 아래 이미지 처럼 start button이 비활성화 되어서 클릭할 수가 없습니다 ㅠ환경은 맥 m1 이고 postgres를 말씀해주신 방식이 윈도우같아서 brew 에서 설치했고'minseo'라는 계정에서 superuser 롤 부여한 상태입니다. 감사합니다
-
해결됨MariaDB 클라이언트 개발, HeidiSQL
결과창에서 '선택한 행 복사' 안보임
안녕하세요.HEIDISQL 12.3.0.6589 를 사용하고 있습니다. 결과 값에서 데이터복사하기에 우측 마우스를 클릭하면 '복사하기' 외에 '선택한 행복사' 가 나온다고 되어 있는데요. 저는 해당 메뉴가 안보이는데요.버전이 달라서 그런걸까요??
-
미해결MariaDB 클라이언트 개발, HeidiSQL
CSV 업데이트 시 NULL값 관련
안녕하세요.HEIDISQL 12.3.0.6589를 사용하고 있고요. CSV 파일 불러오기 강습내용대로, 그리고 AGE가 NULL 허용으로 되어 있고 기본값을 NULL로 해놨으나, CSV가져오기를 하면경고가 뜨고 데이터를 확인하면 AGE NULL 이어야 하는데 '0'으로 되어있는데요. 그 이유를 모르곘습니다.
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
mysql 버전이 여러개인 경우 버전별로 선택해서 접속 못하나요???
안녕하세요.기존에 사용하던 mysql 5버전이 있는데, 실습 환경을 동일하게 맞추기 위해 8버전을 설치하여 실습 중입니다. 환경변수 경로가 5버전으로 되어있는데 혹시 명령어로는 버전별 선택해서 접속할 수 없는건가요??물론 환경변수 경로를 8버전으로 설정하면 해결되겠지만 계속 왔다갔다하기 번거로워 질문남깁니다!ㅠㅠ
-
해결됨다양한 사례로 익히는 SQL 데이터 분석
쿼리 관련 질문이 있습니다.
안녕하세요. 강의 듣는 중 궁금한 점이 있어서 질문드립니다. 만약 '카테고리별 기준 월, 전 월, 작년 월 ( 기준 월 = 2023/10, 전월 = 2023/09, 작년 월 = 2022/10)의 차이'를 구하라고 한다면 강의와 같이 기준 연월의 일년 정도의 데이터(2022/10 ~ 2023/10)를 가져와서 사용하는게 더 좋을까요?아니면, 3개 조건 각각 select하여 카테고리 기준으로 join하는게 더 좋을까요?ex) with as ( 기준 월), with as (전 월), with as (작년 월)... 혹은 더 좋은 방법이 있다면 알려주시면 감사하겠습니다. 이런 질문 드려도 되는지 모르겠지만.. 강의 잘 듣고 있습니다.감사합니다.
-
미해결Airflow 마스터 클래스
Chapter 16 스케줄러 부하 줄이기에 관한 질문입니다.
멀티 스케줄러 환경에서, 각 스케줄러는 Dag ParsingDB에 해당정보를 기록Scheduler Loop의 과정을 거친다고 이해했습니다. 여기서, Dag Parsing에 관한 부분은 DB에 관한 정보를 참고해서 하는것이 아닌 코드만을 가지고서 돌려보는 것으로 이해하고 있는데, 그렇다면 1번 과정(Dag Parsing)은 멀티 스케줄러 환경을 구성한다고 해서 시간 단축의 효과를 얻을 수 없는것인가요?? DAG이 10개가 있고, 스케줄러가 두개가 있다면,1번 스케줄러가 첫번째 DAG를 돌렸고, Lock을 걸은 후, 해당 작업이 큐까지 들어가게 되면 DB에 관한 정보의 Lock을 해제 하나요? 그렇다면 만약 다른 스케줄러가 해당 DAG의 정보를 검색했을때, 해당 DAG에 관한 Scheduler Loop를 돌것이고, 그렇다면 이 상황에서는 멀티스케줄러의 이점을 얻을 수 없는것인지가 궁금합니다. 감사합니다.
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
커넥트를 이용한 데이터 마이그레이션 질문드립니다
안녕하세요, 양질의 강의 항상 감사드립니다!다름이 아니라 현재 실무에서 스프링 배치를 이용해서 데이터를 DB to DB 로 마이그레이션하는 업무가 있는데 이를 강의에서 배운 카프카 커넥트를 활용하면 좋을것 같아서 고민중인데 잘 안풀리는 부분이 있어 질문드립니다 데이터 가공문제DB to DB 로 이관시 가장 좋은것은 커넥트만 써서 코드개발없이 마이그레이션 해버리는 것이 좋을것같은데 막상 실제 마이그레이션 할 때는 source 에서 퍼온 데이터를 sink 시 몇몇 컬럼은 데이터 가공하거나 없어지는 등 가공에 약간 손을 봐야하는 경우가 종종 있어서 이런 케이스에 대해 어떻게 해결을 해야할 지 고민입니다.고민을 해봤을 때 해결방안으로는 streams api 를 껴서 아래와 같은 아키텍쳐로 해결하는 방법이 있을 것 같은데요source -> topic -> kafka stream api 등을 통해 데이터 가공 후 topic 전송 -> sink 커스텀 sink 나 source 커넥터 개발어느 방법이나 결국 추가개발이 필요한건 매한가지라 현재 배치로 개발해놓은 구조를 커넥트를 이용하도록 바꿨을 때 이점이 명확하게 안보여서 좀 고민입니다... 데이터 마이그레이션 후 검증문제실무에서 배치로 마이그레이션 후 원본데이터가 있는 source db 와 마이그레이션 한 sink db 간에 건수비교 등 데이터 이관이 잘 되었는지 대사비교를 진행하는데요, 카프카 커넥트로 전환한다고 해도 이러한 대사비교는 여전히 필요하지 않을까 싶은데 실무에서 카프카 커넥트를 활용할 때 이러한 검증 문제를 어떻게 해결하는지 궁금합니다 카프카 커넥트를 실무에서 활용한 경험이 없다보니.... 강사님이라면 이러한 문제에 직면했을때 어떤 생각을 가지실 지 궁금합니다!감사합니다:)
-
미해결다양한 사례로 익히는 SQL 데이터 분석
주문별 연관상품 추출 SQL 관련 문의
안녕하세요?주문별 연관 상품 추출 SQL에서SELECT a.order_id, a.product_id, b.product_id from ga.order_items a join ga.order_tems b on a.order_id = b.order_id where a.product_id <> b.product_id위 코드와 같이 where 절 안에서 같은 product_id가 조인 되는 경우를 filtering 하였습니다.혹시 join 조건절에서(아래 sql과 같이) filtering 하지 않고 where 절에서 하는 이유가 있을까요?SELECT a.order_id, a.product_id, b.product_id from ga.order_items a join ga.order_tems b on a.order_id = b.order_id and a.product_id <> b.product_id
-
해결됨Airflow 마스터 클래스
Task 실행관련 질문입니다.
안녕하세요! 'Bash Operator & 외부 쉘파일 수행하기' 강의를 듣고 실습하던 중 에러가 생겨서, 해결을 시도했는데 계속해서 실패해서 질문을 남겨봅니다!airflow를 실행하고 태스크를 수행하면 fail이 뜨는데, 로그를 확인하면 파일을 찾을 수 없다고 합니다. [2023-10-12, 14:12:25 KST] {subprocess.py:93} INFO - /bin/bash: line 1: /opt/***_log/plugins/shell/select_fruit.sh: No such file or directory [2023-10-12, 14:12:25 KST] {subprocess.py:97} INFO - Command exited with return code 127 [2023-10-12, 14:12:25 KST] {taskinstance.py:1935} ERROR - Task failed with exception Traceback (most recent call last): File "/home/airflow/.local/lib/python3.8/site-packages/airflow/operators/bash.py", line 210, in execute raise AirflowException( airflow.exceptions.AirflowException: Bash command failed. The command returned a non-zero exit code 127. 저는 wsl에 디렉토리는 아래 경로처럼 설정했습니다.(select_fruit.sh파일에 실행 권한도 주었습니다.)/airflow_log/plugins/shell/select_fruit.sh 이후 docker-compose.yaml에 volumes 항목을 아래와 같이 설정을 했습니다. ${AIRFLOW_PROJ_DIR:-.}/airflow_log/plugins:/opt/airflow/plugins Vscdoe에서 경로는 아래와 같이 설정을 했습니다.t1_orange = BashOperator( task_id="t1_orange", bash_command="/opt/airflow_log/plugins/shell/select_fruit.sh ORANGE", ) t2_banana = BashOperator( task_id="t2_banana", bash_command="/opt/airflow_log/plugins/shell/select_fruit.sh BANANA", )경로 문제인지, 아니면 다른 문제인지.. 도움 요청해봅니다.저에게 너무 필요한 강의라서 잘 듣고 있습니다! 앞으로도 좋은 강의 부탁드리겠습니다!
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
cdc 동기화 테스트 환경 초기화
안녕하세요열심히 수강중인 수강생입니다.mysql과 postgresql을 동기화하는 cdc를 테스트중인데무언가 꼬였나봅니다.초기화하는 방법이 궁금합니다.강의의 어느 부분을 참고하면 되는지 답변 부탁드립니다감사합니다.
-
미해결카프카 완벽 가이드 - ksqlDB
ksqlDB 2부 강의의 PDF 문서는 어디서 다운 받을 수 있을까요
ksqlDB 2부 강의의 PDF 문서는 어디서 다운 받을 수 있을까요
-
해결됨Airflow 마스터 클래스
dags 경로 설정 질문 있습니다.
안녕하세요! 현재 Bash operator DAG 만들기 & DAG 디렉토리 셋팅 강의를 수강하고 있습니다.19분 50초 즈음 dags 폴더의 경로를 설정하는 과정에서 git repo 내의 dags를 지정하는 것에 궁금증이 생겨 질문을 작성하게 되었습니다. 만약 제가 다른 repo를 파서 새로운 dags 폴더를 만들게 되면, 그 때는 저 환경 설정을 다시 해야한다고 생각하는데, 이게 맞는지 궁금합니다. 다시 설정을 하지 않으려면, 설정한 dags 안에 모든 dag가 들어가야 하는데, 나중에 헷갈리지는 않을까 걱정이 되어 질문 드립니다. 덕분에 airflow 공부 하는 것이 기대가 됩니다. 좋은 강의 해주셔서 정말 감사합니다.
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
파티션 1개당 컨슈머 1개가 좋다고 말씀 하셨는데용
강사님께서 컨슈머 개수는 토픽의 파티션 개수보다 같거나 작아야 한다고 하셨는데 토픽이 두개면 컨슈머를 새로 파면 될까요?파티션과 컨슈머가 1:1이여야 베스트라고 이해했는데 꼭 그렇지도 않을수 있나요? 업무와 강의 사이에서 헷갈리네용 ㅎㅎ