MySQL에서 발생한 오류 메시지 "Referencing column 'AA' and referenced column 'BB' in foreign key constraint 'FK40h442pc8wb44wkjpkec435vm' are incompatible."는 외래 키 제약 조건을 설정할 때 참조하고자 하는 두 열의 데이터 유형이 서로 호환되지 않음을 의미합니다. 외래 키 제약 조건을 만들거나 변경할 때, 참조하는 열(자식 테이블)과 참조되는 열(부모 테이블)의 데이터 유형이 동일해야 하며, 그 외에도 몇 가지 규칙이 있습니다. 이 오류가 발생하는 원인으로는 다음과 같은 것들이 있을 수 있습니다:데이터 유형 불일치: 참조 열과 참조되는 열의 데이터 유형이 다릅니다. 예를 들어, 하나의 열이 INT이고 ..
테이블의 칼럼 속성을 수정할 때 Cannot change column used in a foreign key constraint 오류가 발생하는 경우가 있습니다 이 오류가 발생하는 경우는 수정하고자 하는 테이블의 속성에 연결되 외부키의 속성이 변경되지 못해서 발생합니다. 이 경우 다음과 같이 해당 옵션을 끄고 작업을 처리할 수 있습니다. SET FOREIGN_KEY_CHECKS = 0; -- 수정 SET FOREIGN_KEY_CHECKS = 1;
Spark SQL을 이용할 때 tez.lib.uris is not defined in the configuration 오류가 발생하는 경우 hive-site.xml파일에 tez 환경 설정을 넣어주면 됩니다. : org.apache.spark.sql.AnalysisException: java.lang.RuntimeException: org.apache.tez.dag.api.TezUncheckedException: Invalid configuration of tez jars, tez.lib.uris is not defined in the configuration; 설정 추가 tez.lib.uris hdfs:///apps/tez/tez.tar.gz tez.use.cluster.hadoop-libs true
스파크 SQL에서는 JDBC드라이버를 이용해서 데이베이스에 직접 접근해서 정보를 가져올 수 있습니다. spark-shell, spark-submit으로 실행할 때 데이터베이스에 접근하기 위한 jar 파일을 함께 제공해야 합니다. 샘플 코드 import java.util.Properties // 프로퍼티 설정 val prop = new Properties() prop.put("user", "db_user_name") prop.put("password", "db_password") // 데이터베이스 연결 및 뷰 생성 val tableDf = spark.read.jdbc("jdbc:mysql://mysql_url:mysql_port/database_name", "table_name", prop) tableDf..
EMR 5.24에서 우지와 스파크 sql을 이용하여 작업을 하려고 하면 다음과 같은 오류가 발생합니다. 에러로그 Caused by: java.lang.IllegalArgumentException: Unable to instantiate SparkSession with Hive support because Hive classes are not found. at org.apache.spark.sql.SparkSession$Builder.enableHiveSupport(SparkSession.scala:870) at com.sec.bigdata3.analyzer.scala.profile.RunestoneProfile$.main(RunestoneProfile.scala:32) at com.sec.bigdata3..
AWS의 EMR에서 spark-sql을 이용하여 s3를 로케이션으로 가지는 테이블에 데이터를 쓰면 chgrp 오류가 발생합니다. scala> sql("""insert into table s3_table select * from sample1""").show() -chgrp: '' does not match expected pattern for group Usage: hadoop fs [generic options] -chgrp [-R] GROUP PATH... -chgrp: '' does not match expected pattern for group Usage: hadoop fs [generic options] -chgrp [-R] GROUP PATH... 이 오류가 발생해도 데이터를 생성되는 데 아..
Hive 2.x 버전에서 hpl이 사용가능하다. hql은 Hybrid Procedural SQL 로서 오라클의 프로시저와 동일하다. SQL을 이용하여 IF, FOR 문 등의 절차형 처리를 가능하게 해준다. 여기(http://www.hplsql.org/home)에서 확인이 가능한데, 주의 할 점은 다른 DB의 프로시저에 구현되어 있는 구문들이 모두 구현되어 있지는 않다. 여기(http://www.hplsql.org/doc)에서 각 명령어가 구현되어 있는지 확인해서 처리하면 된다. hive 2.x 에서는 hqlsql이 사용가능하고, 간단하게 다음과 같이 테스트가 가능하다. 다음과 같이 hpl 파일을 저장한다. -- 10까지의 문자 출력 FOR i IN 1..10 LOOP DBMS_OUTPUT.PUT_LINE..
조인 두 개 이상의 테이블을 연결하여 데이터를 조회하는 것 - 등가 조인: 테이블간에 동일한 조건을 이용하여 처리, = 연산자 사용 - 비등가 조인: 테이블간에 동일하지 않은 조건을 이용하여 처리, between, 등의 연산자를 이용하여 처리 - 아웃 조인: 조인 조건을 만족하지 않는 경우에도 결과를 봐야 하는 경우 사용 - 셀프 조인: 자기자신의 정보를 이용하여 조인 처리 카테시안 프로덕트(Cartesian Product) 조인 조건을 생략하거나, 잘 못 설정하여 테이블 간의 모든 데이터가 연결되는 것 SET 연산자 조인을 사용하지 않고 두 개 이상의 테이블의 연관된 데이터를 조회해 오는 방법 - UNION: 테이블 간의 합집합, 중복데이터 제거, 자동으로 정렬 작업 처리 - UNION ALL: 테이블..
오라클을 유지보수 하다보면 사용자가 작성한 프로시저, 함수, 뷰등의 소스코드 중에서 특정 문자열을 검색하고 싶을 때가 있을 것이다. 이럴 때 이용할 수 있는 쿼리가 다음과 같다. SELECT * FROM all_source aas WHERE aas.NAME LIKE 'XXMSC%' -- object 명 AND aas.owner = 'APPS' -- owner 명 AND (upper(aas.text) LIKE '%CREATE_SOURCE_PGM%') -- 검색하고자 하는 문자열 이렇게 입력하면 문자열이 입력되어 있는 소스명, 타입, 라인번호를 반환해 준다.
참고1, 참고2, 참고3, 참고4 over 함수는 group by, order by 를 이용한 서브쿼리의 사용을 편리하게 하기 위해 사용하는 함수이다. 보통 over 함수는 단독으로 사용하기 보다는 count(), max(), min(), sum(), avg(), rank(), row_number() 등과 같은 분석 함수와 함께 사용된다. -- OVER 함수 이용 SELECT NAME, NO, SUM(NO) over(PARTITION BY NAME ORDER BY NAME) FROM ( SELECT 'A' AS NAME, '31' AS NO FROM dual UNION SELECT 'B', '32' FROM dual UNION SELECT 'B', '45' FROM dual UNION SELECT 'D'..
- Total
- Today
- Yesterday
- Python
- bash
- 정올
- 다이나믹
- S3
- yarn
- nodejs
- Tez
- HDFS
- java
- 파이썬
- AWS
- 오류
- error
- SQL
- emr
- HIVE
- oozie
- 하둡
- 하이브
- Hadoop
- ubuntu
- 백준
- SPARK
- Linux
- hbase
- 알고리즘
- mysql
- build
- airflow
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |