전체 글 (215) 썸네일형 리스트형 부호화와 발전 [데이터 중심 애플리케이션 설계 4장] 데이터 부호화 형식 부호화(직렬화, 마샬링): 인메모리 표현을 바이트열로 변환하는 작업 복호화(역직렬화, 파싱, 언마샬링): 바이트열을 표현으로 변환하는 작업 언어별 형식: 언어에서 제공하는 만큼 편리하지만, 특정 언어에 적합한 형식으로 다른 언어나 상위/하위 호환 등에 문제가 발생한다. JSON, XML: 수를 표현할 때 애매한 문제가 있다, 유니코드는 잘 지원하나 바이너리는 잘 지원하지 않아서 base64를 사용하게 된다. 이진부호화: json의 경우 여러가지 이진 부호화가 있었지만 널리 채택되진 못 했고, 대부분 성능상의 큰 이점은 없음 스리프트(Thrift)와 프로토콜 버퍼(Protocol Buffers) 같은 원리를 기반으로 함. 이름 대신 필드 태그를 사용함 required의 경우 이진 데이터.. 저장소와 검색 [데이터 중심 애플리케이션 설계 3장] 로그 구조 저장소: 쓰기에 좋은 구조 LSM 트리: SS 테이블을 여러개로 구성된 인덱스 구조 SS 테이블: merge sort 방식으로 순차적으로 쌓인 키를 컴팩션 시 정렬하여 저장 순차적으로 write하기 때문에 속도가 빠르다. 페이지를 사용하지 않아 오버헤드가 적어 압축률이 좋다. 컴팩션 과정이 있기 때문에 성능에 영향을 줄 수가 있다. 페이지 지향 저장소: 읽기에 좋은 구조 B 트리: 고정 크기의 블록이나 페이지로 나누고 한 페이지에서 다음 페이지를 참조한다. B 트리의 쓰기는 디스크 상의 페이지를 덮어쓴다. 이것은 문제 발생 시 위험한 동작으로 WAL(Write-ahead log)를 추가해서 문제 발생 이후에도 복구가 가능하도록 한다. (copy-on-write scheme 방식도 있음) WAL.. [Go] http request header에서 Host 값 변경하기 request, err := http.NewRequest(http.MethodPost, url, input) request.Header.Set("Content-Type", "application/json") request.Header.Set("Host", host)보통 http request를 보낼 때 header를 조정해야 하는 경우가 있다. go 에서 전송을 하는데, 자꾸 응답이 정상적으로 오지 않았다. Host를 변경해야 해서 위처럼 변경한 상태이다. 실제로 코드 상에서 response와 request에서 header의 Host값이 변경된 값으로 보인다. 하지만 전송 시점에 변경되는 것으로 보인다. request.Host = host그래서 위처럼 직접 변경을 해줘야 된다. [Mac] shift - space 한영 변환 (xcode 설치 안 하고) ~/Library/Preferences/com.apple.symbolichotkeys.plist 파일에서 60 > value > parameters > 3번째 값을 131072로 변경하면 된다. 근데 plist파일을 일반적으로 수정할 수가 없어서 xcode나 plistedit을 설치하라고 한다. 근데 xcode는 너무 무겁고.. PlistEdit은 trial 버전이라 굳이 이렇게까지 해야하나 싶다. 찾아보니 기본적으로 제공되는 유틸이 있다. plutil -convert json ~/Library/Preferences/com.apple.symbolichotkeys.plist plutil -convert xml ~/Library/Preferences/com.apple.symbolichotkeys.plist .. [Spark/hdfs] 데이터노드 디스크 확보 에러 발생 An error occurred while calling None.org.apache.spark.api.java.JavaSparkContext. : org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/.sparkStaging/application_1681262849232_2058/hive-site.xml could only be written to 0 of the 1 minReplication nodes. There are 1 datanode(s) running and 1 node(s) are excluded in this operation. hdfs 용량 확인 hdfs dfs -df -h hdfs 로그 삭제 hdfs .. [Spark/Yarn] 특정 실행중인 job(애플리케이션) 죽이기 1. 실행 중인 job 확인 yarn application -list yarn application -appState RUNNING -list | grep "applicationName" 2. 실행 중인 job 죽이기 yarn application -kill application_1681262849232_2072 [Kubeflow/kserve] taints, tolerations 사용 시 에러 taint: 오점, 오명 toleration: 용인, 관용 특정 노드(node)에 특정 파드(pod)를 배포하기 위해서 알아보다 taints와 tolerations를 사용하라는 내용을 찾게 되었다. 익숙치 않는 단어라 검색해보니 위에 처럼 나와있다... (노드를 오염시켜 접근이 불가하지만 관용으로 접근한다는 건가..) 기능은 노드에 taints를 걸면 특정 조건(equal, exsist)이 맞을 경우 noSchedule, noExecute 등을 지정할 수 있다. 간단히 말해서 특정 값이 있는 경우에만 배포를 할 수 있다. (https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/) 그리고 파드에 해당 조건을 주는 것이 to.. 데이터 모델 및 질의 언어 [데이터 중심 애플리케이션 설계 2장] 관계형 모델 스키마 변경이 힘들고 실제 데이터와 애플리케이션 과의 차이가 발생하여 임피던스 불일치 발생 최근에는 json등을 지원함 mysql에서는 alter 명령어 수행 시 비용이 큼 다대일과 다대다 관계 관계형 모델에서는 다대다 관계를 일대다 관계로 풀어서 해결한다. 일대다 관계는 문서 모델에서의 트리 구조로 표현 가능 관계형 모델에서는 일대다의 반대인 다대일도 id기반으로 쉽게 해결가능 문서 모델에서는 다대일 관계는 적합하지 않음 (join 필요) NoSQL 문서 데이터베이스 조인이 미흡하다 관계형 DB의 쓰기 스키마와 반대되는 읽기 스키마 지역성 활용 가능 (관계형은 조인을 해야해서 전체 검색이 필요함) 그래프 데이터베이스 다른 데이터베이스와의 차이 다대다 관계에 적합 특정 조건을 찾을 때까지 반.. 이전 1 2 3 4 5 6 ··· 27 다음