728x90 반응형 분류 전체보기336 window 할당 방식 pyflink 라이브러리를 이용 1. 텀블링(Tumbling) 윈도우: 설명: 텀블링 윈도우는 일정한 크기의 고정 시간 간격으로 데이터를 처리하는 방식입니다. 각 윈도우는 서로 겹치지 않고, 데이터 스트림이 일정 시간 간격으로 분리되어 처리됩니다. 예제 코드: tumbling_window_result = data_stream\ .key_by(lambda x: x[0])\ .window(TumblingEventTimeWindows.of(Time.seconds(5)))\ .reduce(lambda x, y: (x[0], x[1] + y[1])) 예제 설명: 데이터 스트림을 5초 단위로 처리하도록 텀블링 윈도우를 설정하였습니다. 각 윈도우에서는 동일한 키를 가진 데이터가 모여서 합산되어 출력됩니다. 2. 슬라.. 2024. 2. 1. 코딩 테스트 연습) 2023 KAKAO BLIND RECRUITMENT 이모티콘 할인행사(python3) [문제 설명] 카카오톡에서는 이모티콘을 무제한으로 사용할 수 있는 이모티콘 플러스 서비스 가입자 수를 늘리려고 합니다. 이를 위해 카카오톡에서는 이모티콘 할인 행사를 하는데, 목표는 다음과 같습니다. 이모티콘 플러스 서비스 가입자를 최대한 늘리는 것. 이모티콘 판매액을 최대한 늘리는 것. 1번 목표가 우선이며, 2번 목표가 그 다음입니다. 이모티콘 할인 행사는 다음과 같은 방식으로 진행됩니다. n명의 카카오톡 사용자들에게 이모티콘 m개를 할인하여 판매합니다. 이모티콘마다 할인율은 다를 수 있으며, 할인율은 10%, 20%, 30%, 40% 중 하나로 설정됩니다. 카카오톡 사용자들은 다음과 같은 기준을 따라 이모티콘을 사거나, 이모티콘 플러스 서비스에 가입합니다. 각 사용자들은 자신의 기준에 따라 일정 비.. 2024. 1. 25. 코딩 테스트 연습) 2023 KAKAO BLIND RECRUITMENT 택배 배달과 수거하기(python3) [문제 설명] 당신은 일렬로 나열된 n개의 집에 택배를 배달하려 합니다. 배달할 물건은 모두 크기가 같은 재활용 택배 상자에 담아 배달하며, 배달을 다니면서 빈 재활용 택배 상자들을 수거하려 합니다. 배달할 택배들은 모두 재활용 택배 상자에 담겨서 물류창고에 보관되어 있고, i번째 집은 물류창고에서 거리 i만큼 떨어져 있습니다. 또한 i번째 집은 j번째 집과 거리 j - i만큼 떨어져 있습니다. (1 ≤ i ≤ j ≤ n) 트럭에는 재활용 택배 상자를 최대 cap개 실을 수 있습니다. 트럭은 배달할 재활용 택배 상자들을 실어 물류창고에서 출발해 각 집에 배달하면서, 빈 재활용 택배 상자들을 수거해 물류창고에 내립니다. 각 집마다 배달할 재활용 택배 상자의 개수와 수거할 빈 재활용 택배 상자의 개수를 알고.. 2024. 1. 17. 코딩 테스트 연습) 2023 KAKAO BLIND RECRUITMENT 개인정보 수집 유효기간(python3) [문제 설명] 고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다. 예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다. 당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다. 모든 달은 28일까지 있다고 가정합니다. 다음은 오늘 날짜가 2022.05.19.. 2024. 1. 16. 프로세스, 스레드, 멀티태스킹, 멀티스레딩, 멀티프로세싱, 멀티프로그래밍 프로세스 - 컴퓨터에서 실행 중인 프로그램 - 각각의 프로세스는 독립된 메모리 공간을 할당 받음 - 명령어들과 데이터를 가짐 CPU - 명령어를 실행하는 연산 장치 메인 메모리 - 프로세스가 CPU에서 실행되기 위해 대기하는 곳 IO - 파일을 읽고 쓰거나 네트워크의 어딘가와 데이터를 주고 받는 것 - 입출력 장치와 데이터를 주거나 받는 것 단일 프로세스 시스템 - 한 번에 하나의 프로그램만 실행됨 - CPU 사용률이 좋지 않음 --> 여러 개의 프로그램을 메모리에 올려놓고 동시 실행 --> IO 작업이 발생하면 다른 프로세스가 CPU에서 실행됨 => 멀티프로그래밍 멀티프로그래밍 - CPU 사용률을 극대화 시키는데 목적 - CPU 사용 시간이 길어지면 다른 프로세스는 계속 대기 --> 프로세스는 한 번 .. 2023. 11. 27. 카프카 500,000 events/s 처리(2) 최종 목표는 카프카를 이용하여 초당 50만건의 이벤트 데이터 스트림 처리 및 초당 500개의 프로세스 처리를 목표로 진행하고 있다. 현재, 초당 10만건의 이벤트 데이터 스트림 처리 및 500개의 프로세스 처리를 완료했다. 구동했던 서버의 사양이 위의 조건에 맞는 최적사양보다는 현저히 낮은 관계로 아마 고사양 하드웨어 스펙에서 실행하면, 결과가 달라질 것으로 사료된다. 더보기 최적의 하드웨어 스펙 CPU : 32 core 이상 RAM : 128GB 이상 Network : 25 Gbps Ethernet 이상 현 하드웨어 스펙 1. 카프카 프로듀서 CPU : 8코어 Memory : 32GB 2. 주키퍼, 카프카 CPU : 4코어 Memory : 24GB 더보기 1.68초당 10만건의 이벤트 처리 및 500개.. 2023. 5. 11. [KAFKA] Failed to clean up log for __consumer_offsets, Shutdown broker because all log dirs in 원인 분석 및 해결방안 [KAFKA] Failed to clean up log for __consumer_offsets, Shutdown broker because all log dirs in 오류는 Kafka 브로커에서 __consumer_offsets 토픽 로그를 정리하는 동안 문제가 발생하여 Kafka 서버가 종료된 것을 나타낸다. 이 오류가 발생하는 원인은 일반적으로 로그 디렉토리의 권한 문제, 디스크 용량 부족, 파일 시스템 오류 등이고, 이러한 문제로 인해 Kafka가 로그 파일을 삭제할 수 없으며, 이로 인해 Kafka가 종료된다. 이 문제를 해결하기 위해서는 다음과 같은 방법을 시도할 수 있습니다. 로그 디렉토리의 권한을 확인해야 하며, Kafka 브로커가 로그 디렉토리를 읽고 쓸 수 있는지 확인해야 함.. 이를.. 2023. 4. 24. 카프카 500,000 events/s 처리(1) 초당 50만건의 데이터 처리를 위한 카프카 server.properties 설정 값을 변경해야 하며, 아래와 같음. config 설정 값을 변경 후에 데이터 처리 테스트를 진행해볼 예정임. 1. num.partitions 이 설정은 Kafka 토픽에 대한 파티션 수를 결정합니다. 파티션 수를 늘릴수록 초당 처리 가능한 이벤트 수가 증가합니다. 따라서, 이 값을 높여야 할 수 있습니다. 이 값은 토픽을 생성할 때 설정하거나, 기존 토픽의 파티션 수를 변경할 때 수정할 수 있습니다. # num.partitions=100 2. message.max.bytes 이 설정은 Kafka에서 처리 가능한 최대 메시지 크기를 결정합니다. 메시지가 크면 Kafka의 처리 성능이 저하될 수 있으므로, 가능한한 작은 크기로 .. 2023. 4. 21. (Python) 대용량 데이터 처리 속도 높이기(3) 이전에 같은 서버 내에서 다른 디렉토리에 100MB 파일을 옮기는데 대략 5초 정도 소요된 것으로 확인하였다. 현재, 120MB zip 파일을 다른 서버의 디렉토리에 옮기는데, 대략 10초 정도 소요된 것을 확인할 수 있었다. 대용량 파일을 처리하기 위해서는 좀 더 고도화해야 될 필요가 있다고 판단이 된다. 여기에서는 다른 서버의 디렉토리에 파일을 옮기기 위해서는 PutSFTP를 활용하였다. 2023. 4. 20. (Python) 대용량 데이터 처리 속도 높이기(2) 기존에 apache nifi를 이용하여 데이터 처리를 진행한 경험이 있다. 이를 바탕으로, 100MB의 zip 파일을 옮기고자 한다. 결과적으로는 대략 2.5초 정도의 시간이 소요되며, 같은 서버의 다른 디렉토리로 이동시키는 정도로 진행을 하였다. 서버는 Centos7이며, 사양은 테스트용이기 때문에 그다지 좋은 사양은 아니다. Listing Strategy : Tracking Timestamps Hostname : IP주소 SFTP : 22 포트 Username/Password : 서버 아이디/패스워드 Remote Path : 파일이 저장된 경로 File Filter Regex : 파일 확장자 Search Recursively : True로 설정하면 Remote Path 아래의 하위 디렉터리에서도 파일.. 2023. 4. 19. 이전 1 2 3 4 ··· 34 다음 728x90 반응형