본문 바로가기

전체 글

(30)
개발자 인터뷰 시 질문 모음 개발자 인터뷰는 같이 일할 만한 사람인가를 알아보기 위한 자리입니다. 그래서 기술 면접에는 동료 개발자나 팀 리더가 참석하게 되죠. 이 때 그들이 우리를 판단하는 것처럼 우리도 그 회사가 일하기 적절한 회사인지 질문을 통해 판단할 수 있습니다. 면접관의 질문이 끝났다면, 이제 당신이 미래의 동료가 될 개발자들에게 물어볼 차례입니다. 이번 포스트에서는 개발자 인터뷰 또는 기술 면접에서 면접관에게 할 만한 질문 몇 가지를 정리해봤습니다. 1. 팀(프로젝트)에 몇 명의 개발자가 있는지 먼저 앞으로 일하게 될 팀에 개발자가 몇 명 있는지 물어봅니다. 이 질문은 면접관에게도 그다지 민감한 질문은 아닐텐데요. 만약 프로젝트 단위로 운영되는 팀이라면 본인이 투입될 프로젝트에 개발자가 몇 명인지 물어보면 되겠죠? 신입..
Apache Hive와 Apache Spark SQL의 차이점 Apache Hive와 Apache Spark SQL의 차이점 1. Apache Hive : Apache Hive는 Apache Hadoop 의 정점에 구축 된 데이터웨어 하우스 장치로 편리한 레코드 요약, 임시 쿼리 및 Hadoop과 결합 된 여러 데이터베이스 및 파일 구조에 저장된 방대한 데이터 세트의 평가를 가능하게합니다. MapR XD 및 MapR 데이터베이스와 함께 MapR 데이터 플랫폼과 함께. Hive는 대량의 구조화되지 않은 사실에 대한 구조를 연습 한 다음 해당 데이터에 대해 SQL과 유사한 일괄 쿼리를 실행하는 쉬운 방법을 제공합니다. 2. Apache Spark SQL : Spark SQL은 SQL에 대한 기본 지원을 Spark에 제공하고 RDD (Spark의 할당 된 데이터 세트) ..
HIVE SQL - JOIN 이해(공식문서) Hive Joins Hive Joins Join Syntax Examples MapJoin Restrictions Join Optimization Predicate Pushdown in Outer Joins Join Syntax Hive에서 제공하는 Join구문 join_table: table_reference [INNER] JOIN table_factor [join_condition] | table_reference {LEFT|RIGHT|FULL} [OUTER] JOIN table_reference join_condition | table_reference LEFT SEMI JOIN table_reference join_condition | table_reference CROSS JOIN table_r..
HIVE SQL - EXCHANGE PARTITION EXCHANGE PARTITION 명령은 소스 테이블에서 대상 테이블로 파티션을 이동하고 각 테이블의 메타 데이터를 변경합니다. 명령이 실행되면 HDFS에서 원본 테이블의 파티션 폴더 이름이 변경되어 대상 테이블의 파티션 폴더로 이동합니다. Hive 메타 스토어가 업데이트되어 소스 및 대상 테이블의 메타 데이터가 그에 따라 변경됩니다. 파티션 속성은 전체 또는 부분적으로 지정할 수 있습니다. Constraints 대상 테이블에는 교환 파티션을 포함 할 수 없습니다. 인덱스가 존재하면 작업이 실패합니다 Exchange 파티션은 소스 또는 대상으로 트랜잭션 테이블을 사용할 수 없습니다. 또는 LOAD DATA 또는 INSERT OVERWRITE 명령을 사용하여 트랜잭션 테이블간에 파티션을 이동합니다. 소스 ..
HIVE SQL - BackSlash( ' \ ' ) 찾기 1. RLIKE 사용 정규식으로 문자열 검색을 도와주는 RLIKE 구문을 활용해서 '\'을 찾을수있다 WITH TMP1 AS(SELECT 'test\\test' AS TEST_RE_SLASH_1, 'test\\\\test' AS TEST_RE_SLASH_2, LENGTH('\\') AS LEN_RE_SLASH_1, LENGTH('\\\\') AS LEN_RE_SLASH_2, FROM test.sample LIMIT 5) SELECT * WHERE 1=1 AND TEST_RE_SLASH_1 RLIKE '.*(\\\\).*' AND TEST_RE_SLASH_2 RLIKE '.*(\\\\\\\\).*' LIMIT 5; RLIKE의 정규식에서 ' . '는 어떤 한 문자와 일치하고 ' * '은 왼쪽에 있는 것이 ..
SQL - JOIN 이해하기 JOIN Join이란 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 말한다. 데이터베이스의 테이블은 중복과 공간 낭비를 피하고 데이터의 무결성을 위해서 여러 개의 테이블로 분리하여 저장한다. 그리고 이 분리 된 테이블들은 서로 관계를 맺고 있다. 보통 PK 또는 FK로 두 테이블을 연결함 INNER JOIN(내부 조인) INNER JOIN은 JOIN 중에서 가장 많이 사용되는 JOIN이다. 교집합이라고 많이 설명한다. 여기서 교집합이라는 것은, 특정 조건에 맞는 행들만 포함시키고 그렇지 않은 행들은 제외시킨다는 뜻이다. --형식 SELECT FROM INNER JOIN ON WHERE 검색조건 OUTER JOIN(외부 조인) OUTER JOIN은 조인의 조건에 만족되지 않는 ..
SQL - [NOT] IN과 [NOT] EXISTS의 차이 1. EXISTS : 단순히 EXISTS 절의 결과 존재 유무만으로 T/F 반환 메인 쿼리 EXISTS(서브 쿼리) : 서브 쿼리의 결과가 " 한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴한다. 먼저 메인쿼리에 접근하여 하나의 레코드를 가져오고 그 레코드에 대해서 EXISTS 이하의 서브쿼리를 실행하고 서브쿼리에 대한 결과가 '존재하는지'를 확인한다. EXISTS는 서브 쿼리에 일치하는 결과가 한 건이라도 있으면 쿼리를 더 이상 수행하지 않는다. IN은 서브쿼리 결과를 모두 수행하고, EXISTS는 일치하는 결과가 있으면 더 이상 수행하지 않는다(반대로 EXISTS는 메인쿼리의 레코드는 모두 순회한다) 서브 쿼리 테이블(dept_history)에 데이터량이 많으면 EXISTS를 사용하는것이 성..
리눅스 자동 스케줄링 - 크론탭(Crontab) 사용법 출처 : https://webdir.tistory.com/174 & jdm.kr/blog/2 1. Crontab ? 특정 시간에 특정 작업을 작업을 수행하는 스케줄러 리눅스에서는 일반적으로 cron 데몬이 주기적인 작업 실행을 처리한다. cron이 시작될 때부터 끝날 때까지 계속 실행되며 실행되며 cron 설정 파일은 cron table을 줄여서 crontab이라 부른다 2. Crontab 사용방법 1. 시간주기 설정 vi /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ # For details see man 4 crontabs # Example of job definition: # .-----------..