데이터 스트림은 두 가지 범주로 나뉩니다. 1. 입력 스트림 [InputStream], 입력 스트림은 읽을 수만 있고 쓸 수는 없지만 출력 스트림은 쓸 수만 있고 읽을 수는 없습니다. 2. 출력 스트림 [OutputStream], 일반적으로 입력 스트림은 프로그램에서 데이터를 읽는 데 사용되며, 출력 스트림은 데이터가 프로그램 안팎으로 흐르는 것처럼 데이터를 쓰는 데 사용됩니다.
데이터 스트림은 시작점과 끝점이 있는 정렬된 바이트 데이터 시퀀스입니다. 입력 스트림과 출력 스트림을 포함합니다.
데이터 스트림은 원래 통신 분야에서 사용되는 개념이며 정보 전송에 사용되는 디지털로 인코딩된 신호 시퀀스를 나타냅니다. 이 개념은 1998년 문서 87에서 Henzinger에 의해 처음 제안되었습니다. 그는 데이터 스트림을 "미리 결정된 순서로 한 번만 읽을 수 있는 데이터 시퀀스"로 정의했습니다.
데이터 흐름 애플리케이션의 개발은 다음 두 가지 요소의 결과입니다.
세부 데이터
는 대량의 세부 데이터를 지속적으로 자동 생성할 수 있게 되었습니다. 이러한 유형의 데이터는 전통적인 은행 및 주식 거래 분야에서 처음 등장했으며 이후 지질 측량, 기상학, 천문 관측 등에서도 나타났습니다. 특히, 인터넷(네트워크 트래픽 모니터링, 클릭스트림)과 무선통신 네트워크(통화기록)의 등장으로 인해 데이터 스트림 형태의 데이터가 대량으로 생성되고 있습니다. 우리는 이러한 유형의 데이터가 대부분 지리 정보와 관련되어 있음을 발견했습니다. 이는 주로 지리 정보가 큰 차원을 가지며 대량의 세부 데이터를 생성하기 쉽기 때문입니다.
복잡한 분석
거의 실시간으로 업데이트 스트림에 대한 복잡한 분석이 필요합니다. 위 분야의 복잡한 데이터 분석(예: 추세 분석, 예측)은 오프라인(데이터 웨어하우스)에서 수행되는 경우가 많았습니다. 그러나 일부 새로운 애플리케이션(특히 네트워크 보안 및 국가 보안 분야)은 시간에 매우 민감합니다. 기상이변, 사기, 침입, 인터넷 이상 징후 탐지, 복잡한 군중 모니터링, 추세 추적, 탐색 분석, 조화 분석 등은 모두 온라인 분석이 필요합니다.
이후 학계에서는 기본적으로 이 정의를 인정했고, 일부 기사에서는 이를 바탕으로 정의를 약간 수정했습니다. 예를 들어, S. Guha et al. [88]은 데이터 스트림이 "한 번 또는 몇 번만 읽을 수 있는 순서화된 포인트 시퀀스"라고 믿으며, 여기서는 앞서 언급한 정의의 "1회 통과" 제한이 완화되었습니다.
데이터 스트림 처리 시 데이터 읽기 횟수 제한을 강조하는 이유는 무엇인가요? S. Muthukrishnan [89]은 데이터 흐름이 "입력 데이터가 매우 빠른 속도로 도착하는 것"을 의미하므로 데이터 흐름 데이터의 전송, 계산 및 저장이 어려워질 것이라고 지적했습니다. 이 경우 데이터가 처음 도착했을 때 처리할 수 있는 기회는 단 한 번뿐이고, 그 이후에는 데이터에 접근하기가 어렵습니다(데이터를 저장할 방법이 없고, 없기 때문입니다).
분류:
데이터의 성격과 형식이 다르며 스트림의 처리 방법도 다릅니다. 따라서 Java의 입출력 클래스 라이브러리에는 이에 해당하는 스트림 클래스가 다릅니다. 다양한 속성의 입력/출력 스트림. 자바에서. io 패키지에서 기본 입출력 스트림 클래스는 읽고 쓰는 데이터 유형에 따라 바이트 스트림과 문자 스트림의 두 가지 유형으로 나눌 수 있습니다.
입력 스트림과 출력 스트림
데이터 스트림은 입력 스트림(InputStream)과 출력 스트림(OutputStream)의 두 가지 범주로 나뉩니다. 입력 스트림은 읽기만 가능하고 쓸 수는 없지만, 출력 스트림은 쓰기만 가능하지만 읽을 수는 없습니다. 일반적으로 프로그램은 데이터가 프로그램 안팎으로 흐르는 것처럼 입력 스트림을 사용하여 데이터를 읽고 출력 스트림을 사용하여 데이터를 씁니다. 데이터 흐름은 프로그램의 입력 및 출력 작업을 관련 장치와 독립적으로 만드는 데 사용됩니다.
입력 스트림은 키보드나 파일에서 데이터를 가져올 수 있고, 출력 스트림은 데이터를 모니터, 프린터 또는 파일로 전송할 수 있습니다.
Buffered Stream
데이터 전송의 효율성을 높이기 위해 일반적으로 버퍼링된 스트림이 사용됩니다. 즉, 스트림에는 버퍼가 장착되어 있으며, 버퍼는 데이터를 전송하는 데 특별히 사용되는 메모리 블록입니다. 버퍼링된 스트림에 데이터를 쓸 때 시스템은 외부 장치로 직접 전송하지 않고 대신 데이터를 버퍼로 보냅니다. 버퍼는 자동으로 데이터를 기록합니다. 버퍼가 가득 차면 시스템은 모든 데이터를 해당 장치로 보냅니다.
버퍼링된 스트림에서 데이터를 읽을 때 시스템은 실제로 버퍼에서 데이터를 읽습니다. 버퍼가 비어 있으면 시스템은 자동으로 해당 장치에서 데이터를 읽어와 버퍼를 채울 때까지 최대한 많은 데이터를 읽어옵니다.
위 내용은 데이터 흐름은 여러 범주로 나뉩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!