2012-07-25 12 views
5

최근 우리 팀은 독점적 인 응용 프로그램의 기능을 확장하기 위해 FILESTREAM을보고있었습니다. 이 응용 프로그램의 주요 목적은 우리가 제조하는 모든 부품에 대한 다양한 PDFS, 이미지 및 문서를 관리하는 것입니다. 우리의 ASP 응용 프로그램은 이러한 파일을 볼 수 있도록 몇 가지 타사 도구를 사용합니다. 현재 980GB의 데이터가 파일 서버에 있습니다. 우리는 성능이 좋지 않아서 추출하고자하는 SQL Server에서 약 200GB의 이진 데이터를 가지고 있으므로 FILESTREAM은 두 가지 주요 데이터 저장/액세스 문제에 대해 좋은 절충안으로 보입니다.FILESTREAM/FILETABLE 구현을위한 설명

몇 가지 우리에게 정확하게 명확하지 않다 :

  1. FILESTREAM가 또는 로컬로 연결된되지 않은 드라이브에 데이터를 저장할 수는 없습니다. 우리는 이미 RAID 10 (1.5TB 드라이브)이있는 파일 서버를 가지고 있습니다. 이 서버는 현재 모든 문서를 저장합니다.이 드라이브를 FILESTREAM 용 SQL Server로 이동해야합니까? 서버가 응용 프로그램 서버 (물리적 서버 한 대에 2 대의 VM)로 두 배가되기 때문에 물물 교환은 힘든 일입니다.

  2. FILETABLE은 파일에 대한 공통 메타 데이터를 저장하지만 문서의 전체 텍스트 부분은 doc/docx와 같은 파일 검색을 위해 어디에 저장됩니까? 별거인가? 이 검색 기준을 기준으로 자유롭게 추가 할 수 있습니까? 그렇다면 명확히 밝힐 링크가 있으면 감사하겠습니다.

  3. 외래 키가있는 다른 테이블에서 FILETABLE을 참조 할 수 있습니까?

사전에

EDIT 감사 :이이 웹 비디오는 모든 것을 포함 질문 및 더 많은 2012 2008 파일 스트림을 설명하는 측면에서와 cavets을 가진 사람들을 위해 고려해야 할 (내가 담당자 그를 경우 심각한 것 나는 할 수있다 : http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2270

결론적으로 우리는 투자를 수용하기 위해 급증하는 거대한 방법 일 것이므로 결론적으로 우리는 FILESTREAM을 사용하지 않을 것이다.

편집 2 : 1로

업데이트 -주의 깊게 FILESTREAM에 추가 FileTable을 평가 한 후 우리는 성공적인 결합을 얻었다. 우리는 새로운 서버로 파일을 옮겨야했습니다 (같은 VM에 있었기 때문에 고통스럽지 않았습니다.) SQL 내에서 바이너리 데이터를 파일 시스템에 덤프하는 추출 도구를 작성하는 데 더 많은 시간이 걸렸습니다.

# 2

업데이트 - 이것은 별도했지만 다시 밥이 뛰어난 웹 세미나를 설명했다이 : http://channel9.msdn.com/Events/TechEd/Europe/2012/DBI411

# 3 업데이트 - 우리는 우리가 가지고 있던 문서 테이블 (마이너스 거대한 진 모양)을 재활용 TFT 상속을 사용하는 기존 앱의 변경이 거의 필요하지 않았습니다. 이것은 개발자 팀에게는 큰 결실이었습니다.

답변

3

파일 테이블에 파일이 저장되는 위치는 로컬이어야합니다. 그렇지 않으면 영리한 san 드라이버가 속일 수 있도록 적어도 SQL Server에 로컬로 나타나야합니다. FileTables는 FILESTREAM에 내장되어 있기 때문에 동일한 한계가 있다고 상상해보십시오.

파일 테이블 검색은 문서화 된 containstable 함수를 통해 수행됩니다. on MSDN 검색 조건에는 FULLTEXT 검색 AFAIK와 동일한 구문이 사용됩니다.

FileTable은 일반적인 테이블이므로 조인하거나 검색 할 수 있습니다.유일한 점은 FILESTREAM guid를 파일 경로처럼 유용한 것으로 변경하기 위해 SQL Server의 일부 기능을 사용해야한다는 것입니다.

+0

Spot on. 엔티티 프레임 워크를 사용하기 때문에 작은 문제가 발생했습니다. 우리는 soft_key를 사용하여 stream_id에 FK 제약 조건을 사용하지 않았습니다. EF 디자이너는 FileTables를 완전히 무시합니다. 우리는 주 프로젝트의 작은 ADO.Net 프로젝트를 만들어서 문서를 업로드/다운로드하도록했습니다. – jjhayter