Wyświetl kategorie

Indeksowanie systemu plików i wykonywanie zapytań za pomocą SQL

43 minuty czytania

Złącze systemu plików

Indeksowanie systemu plików i wykonywanie zapytań za pomocą SQL

Po wskazaniu strumieni zapytania w udziale otrzymasz bieżący spis wszystkich plików – nazwy, rozmiary, daty, właścicieli i strukturę folderów – w postaci czterech tabel SQL. Same pliki nigdy nie są otwierane.

Tylko metadane Wykrywanie duplikatów Historia dziennego wzrostu Śledzenie wolnej przestrzeni
\\serwerplików\finanse
archiwum 412 GB eksport 38 GB skany 7 GB Zindeksowano 184 902 plików
WYBIERZ ścieżkę,
       poddrzewo_bajtów
Z katalogów
ZAMÓW PRZEZ 2 OPIS;

Query Streams to bezpieczna platforma integracji baz danych w czasie rzeczywistym, a jej łącznik File System zamienia drzewo folderów w inwentarz systemu plików z możliwością zapytania, który można odczytać z programów Microsoft Excel, Google Sheets, Airtable i asystenta AI. Więcej informacji można znaleźć na stronie QueryStreams.com. oraz zarejestruj się za darmo aby zaindeksować swoją pierwszą akcję w ciągu kilku minut.

Każdy inny tryb łącznika File Set służy do odczytywania zawartości plików. Ten służy do odczytywania wszystkiego. wokół Przeszukuje drzewo folderów i zapisuje znalezione informacje — nazwy, rozmiary, znaczniki czasu, właścicieli, atrybuty, strukturę folderów — i nigdy nie otwiera w tym celu ani jednego pliku.

Brzmi to skromnie, dopóki nie spróbujesz odpowiedzieć na zwykłe pytanie o serwer plików. Pytania dotyczące pamięci masowej to te, na które nikt nie ma dobrych narzędzi. Odpowiedzi można uzyskać, klikając prawym przyciskiem myszy i otwierając okno dialogowe Właściwości, wklejając z forum jednolinijkę w PowerShellu lub licencję na produkt do raportowania pamięci masowej, który wykonuje jedną czynność. Konektor systemu plików odpowiada na nie za pomocą SQL, korzystając z tego samego kreatora zapytań i tego samego dodatku do arkusza kalkulacyjnego, którego używasz już do obsługi baz danych.

Pytania, na które odpowiada inwentaryzacja systemu plików

Oto sześć, które pojawiają się najczęściej i wszystkie sześć stanowią jedno zapytanie po zindeksowaniu folderu.

Które foldery zajmują dysk?

Raport wykorzystania dysku według folderu, zawierający zarówno bezpośrednie dane całkowite, jak i dane dla całego poddrzewa.

Czego nikt nie tknął przez trzy lata?

Sortuj według daty modyfikacji i rozmiaru, aby znaleźć kandydatów archiwalnych, którzy kosztują Cię najwięcej.

Czy posiadamy pięć kopii tego samego pliku?

Po włączeniu haszowania duplikaty są grupowane według zawartości, a nie nazwy.

Czy wczorajszy eksport faktycznie dotarł?

Plik o właściwej nazwie, właściwym rozmiarze i we właściwym czasie — albo wiersz, którego brakuje.

Co pojawiło się lub zniknęło w tym tygodniu?

Rejestr zmian dostępny tylko do dopisywania, więc plik, który po cichu zniknął, pozostawia po sobie zapis.

Czy zabraknie nam miejsca?

Pojemność i wolna przestrzeń są rejestrowane przy każdym przeszukaniu, więc trend jest raczej danymi niż przypuszczeniem.

Cztery tabele i nic z twoich plików nie jest odczytywane

Konektor systemu plików nie generuje żadnych tabel danych. Dostarcza jedynie cztery tabele metadanych, które zawiera każdy konektor zestawu plików, poprawnie wypełnione i traktowane jako punkt odniesienia, a nie jako element porządkujący. Jeśli czytałeś/aś jak działają łączniki zestawu plików, to jest tryb, w którym te cztery tabele stanowią cały produkt.

akta

Jeden wiersz na plik istniejący w danym momencie, zawierający jego ścieżkę, rozmiar, daty, właściciela i atrybuty.

pliki_wydarzenia

Historia tylko do dodawania: co się pojawiło, co zmieniło rozmiar lub datę i co zniknęło.

katalogi

Jeden wiersz na folder, zawierający już podaną liczbę plików bezpośrednich i poddrzewnych oraz całkowitą liczbę bajtów.

kłęby

Pojemność i wolne miejsce na każdy korzeń, przedstawione jako seria, dzięki czemu można śledzić trendy.

Każde przesunięcie to pełny spacer po drzewie. Nie ma kursora ani przejścia częściowego: łącznik wylicza korzenie, buduje jedną spójną migawkę, porównuje ją z tym, co zarejestrował ostatnio i obsługuje wszystkie cztery tabele z tej samej migawki. Dlatego liczby w akta, katalogi oraz kłęby zawsze się ze sobą zgadzają — to trzy spojrzenia na jeden moment, a nie trzy oddzielne interpretacje.

Dzięki temu można bezpiecznie wskazać poufny udział. Łącznik pyta system operacyjny o wpisy katalogowe i atrybuty plików. Nie otwiera plików, nie analizuje ich ani nie kopiuje żadnej części ich zawartości. Inwentaryzacja udziału prawnego lub HR informuje, że dokument o rozmiarze 4,2 MB został ostatnio zmieniony w marcu i od tego czasu nie został odczytany — bez wiedzy kogokolwiek.

Ponieważ ten tryb nigdy nie analizuje pliku, większość mechanizmów opisanych w przewodniku po hubie po prostu nie ma tu zastosowania. Nie ma tu sniffingu, przypiętego kształtu kolumny ani dryfu, o który trzeba by się martwić, ponieważ nie ma formatu pliku, co do którego można by się spierać. Kształt tych czterech tabel jest stały.

Cztery tabele w szczegółach

Każda kolumna poniżej jest rzeczywista i możliwa do odpytania. Znaczniki czasu są podawane w formacie UTC i przechowywane co do sekundy, co ma znaczenie przy ich porównywaniu: łącznik celowo porównuje czasy modyfikacji z dokładnością do sekundy, więc zegar, który raportuje różnice mniejsze niż sekunda, nie generuje zdarzenia zmiany przy każdym przesunięciu.

pliki — żywy inwentarz

Plik jest identyfikowany przez parę identyfikator_root oraz ścieżka_względna, ponieważ dwa katalogi źródłowe mogą legalnie zawierać tę samą ścieżkę względną. Ścieżki zawsze używają ukośników, niezależnie od systemu operacyjnego hosta.

KolumnaTypCo zawiera
ścieżka_względnaVARCHARŚcieżka ukośnikowa od katalogu głównego, zawierająca nazwę pliku. Część klucza.
identyfikator_rootVARCHARSkonfigurowany korzeń, znormalizowany do ścieżki absolutnej z ukośnikiem bez końcowego ukośnika. Część klucza.
ścieżka_nadrzędnaVARCHARFolder pliku względem katalogu głównego. Plik znajdujący się bezpośrednio w katalogu głównym ma . Tutaj.
głębokośćLICZBA CAŁKOWITAJak głęboko pod korzeniem znajduje się plik. Bezpośrednio w korzeniu jest głębokość 1.
nazwaVARCHARNazwa pliku z rozszerzeniem.
rozszerzenieVARCHARMałe litery, bez kropki na początku. Pusty ciąg, jeśli plik go nie zawiera.
rozmiar_bajtówBIGINTRozmiar na dysku w bajtach.
created_utcZNACZNIK CZASUCzas utworzenia, UTC.
zmodyfikowany_utcZNACZNIK CZASUCzas ostatniego zapisu, UTC. Kolumna, według której sortowane są raporty o największej liczbie nieaktualnych plików.
accessed_utcZNACZNIK CZASUCzas ostatniego dostępu, UTC. Przydatne, ale zapoznaj się z notatką poniżej.
właścicielVARCHARW systemie Windows właściciel listy kontroli dostępu rozwiązał problem DOMENA\nazwaKonto, którego nie można zmapować, pozostawia surowy identyfikator SID; host inny niż Windows lub niemożliwa do odczytania lista ACL pozostawia ten identyfikator null.
atrybutyVARCHARAtrybuty pliku są oznaczone jako tekst, np. Archiwum lub Ukryty, System.
haszyszVARCHARSHA-256 jako małe litery szesnastkowe. Wypełniane tylko wtedy, gdy haszowanie jest włączone, a plik mieści się w limicie rozmiaru hasza.
segmenty_ścieżkiVARCHAR[]Ścieżka względna podzielona na /, jako lista. Wygenerowano z ścieżka_względna, więc nigdy nie może się z nim nie zgadzać.
first_seen_utcZNACZNIK CZASUPrzesunięcie, w którym plik został po raz pierwszy nagrany. Zachowuje plik po usunięciu i przywróceniu.
ostatnio_widziany_utcZNACZNIK CZASUOstatnie przeszukanie, podczas którego faktycznie wykryto plik.
państwoVARCHARobecny lub zniknąłZobacz zasady usuwania poniżej.
liczba_zmianLICZBA CAŁKOWITAIle razy łącznik zaobserwował zmianę tego pliku od momentu jego pierwszego zobaczenia.
wykryte przezVARCHARNa którym poziomie ostatnio zauważono zmianę: zamiatać w celu zmiany rozmiaru lub daty, haszysz za zmianę treści, która pozostawiła rozmiar i datę bez zmian.

Do tego stałego zestawu możliwe są dwa dodatki. Jeśli skonfigurujesz wzorzec nazwy pliku, każdy token w nim stanie się osobną kolumną plus nazwa_parse_ok Flaga. Jeśli nazwiesz tokeny folderów, każdy nazwany segment ścieżki poniżej głównego również stanie się kolumną. Oba zostaną omówione poniżej.

Jedno zastrzeżenie accessed_utc:śledzenie ostatniego dostępu jest wyłączone lub bardzo leniwe w wielu konfiguracjach Windows i NAS ze względu na wydajność, więc traktuj to jako wskazówkę, a nie ślad audytu. zmodyfikowany_utc jest niezawodny.

akta jest widokiem; pliki_bieżące jest tabela pod nim. Widok jest zdefiniowany jako wiersze, w których stan = 'obecny', więc zapytanie przeciwko akta Nigdy nie można przypadkowo policzyć usuniętego pliku. Zapytanie pliki_bieżące bezpośrednio tylko wtedy, gdy konkretnie chcesz mieć również nagrobki.

files_events — dziennik zmian

Każde przeszukanie porównuje znalezione dane z danymi zarejestrowanymi poprzednio i zapisuje wiersz dla każdej różnicy. Dziennik jest dostępny tylko do dopisywania, więc odpowiada na pytania dotyczące przeszłości, na które bieżący inwentarz nie jest w stanie odpowiedzieć.

KolumnaTypCo zawiera
identyfikator_zdarzeniaVARCHARKlucz. Pochodzi ze szczegółów samego zdarzenia, więc ponowna próba synchronizacji nie może dwukrotnie zarejestrować tego samego zdarzenia.
wydarzenie_wZNACZNIK CZASUKiedy rozpoczęło się skanowanie, które wykryło zmianę. Wszystkie zdarzenia z jednego skanowania mają ten sam znacznik czasu.
identyfikator_rootVARCHARKorzeń, do którego należał plik.
ścieżka_względnaVARCHARPlik, którego dotyczy wydarzenie.
typ_wydarzeniaVARCHARpojawił się, zmodyfikowany lub zniknął. Czwarta wartość, dryf, istnieje dla trybów czytania treści i nigdy nie występuje tutaj.
rozmiar_bajtówBIGINTRozmiar pliku w momencie zdarzenia. Wartość null w przypadku zniknął wiersz, bo nie ma czego mierzyć.
zmodyfikowany_utcZNACZNIK CZASUCzas modyfikacji pliku w momencie zdarzenia.
poprzedni rozmiar_bajtówBIGINTRozmiar, jaki łącznik miał w danych przed tym zdarzeniem. To właśnie sprawia, że zapytanie „powiększyło się o 40 GB z dnia na dzień” jest jednowierszowe.
wykryte przezVARCHARzamiatać lub haszysz — który poziom go złapał.
szczegółVARCHARZarezerwowane dla wyjaśnień dryfu trybów zawartości. W tym trybie zawsze wartość null.

Plik, który został usunięty, a następnie przywrócony, jest traktowany jako ten sam plik, a nie jako nowy. first_seen_utc jest zachowany i jego liczba_zmian ciągle rośnie, dzięki czemu historia pozostaje nienaruszona, zamiast resetować się za każdym razem, gdy ktoś przenosi folder tam i z powrotem.

Rejestr zdarzeń można przechowywać w dniu wydarzenie_w, a ustawienie przechowywania zdarzeń ogranicza czas przechowywania historii — 30 dni domyślnie, nawet do dziesięciu lat, jeśli chcesz mieć długi ślad audytu. Warto podjąć decyzję o tym okresie wcześniej, niż za późno, ponieważ późniejsze jego podniesienie nie przywróci zdarzeń, które zostały już przycięte.

Co zmieniło się na giełdzie w tym tygodniu
WYBIERZ event_at, event_type, relative_path, prev_size_bytes, size_bytes Z files_events GDZIE event_at >= CURRENT_TIMESTAMP - INTERWAŁ 7 DNI ZAMÓW WEDŁUG event_at DESC, relative_path;

katalogi — raport wykorzystania dysku

Niezręczną rzeczą w przypadku rozmiarów folderów jest to, że na pytanie „jak duży jest ten folder” istnieją dwie odpowiedzi, a większość narzędzi po cichu wybiera jedną. Query Streams podaje obie. bezpośredni_* zlicza tylko pliki znajdujące się bezpośrednio w tym folderze; poddrzewo_* zlicza również wszystko poniżej. Obie kolumny są prawdziwymi kolumnami, zwiniętymi podczas skanowania, więc raport o wykorzystaniu dysku nigdy nie wymaga zapytania rekurencyjnego.

KolumnaTypCo zawiera
ścieżkaVARCHARŚcieżka folderu względna do katalogu głównego; . jest samym korzeniem. Częścią klucza.
identyfikator_rootVARCHARKorzeń, do którego należy ten folder. Część klucza.
ścieżka_nadrzędnaVARCHARFolder zawierający. Wartość null dla wiersza głównego.
głębokośćLICZBA CAŁKOWITAPoziomy poniżej korzenia; głębokość rzędu korzeni wynosi 0.
bezpośrednia_liczba_plikówBIGINTPliki znajdujące się bezpośrednio w tym folderze.
bezpośrednie_bajtyBIGINTBajty przechowywane tylko w tych plikach.
liczba_plików_poddrzewaBIGINTPliki w tym folderze i wszystko co się w nim znajduje.
poddrzewo_bajtówBIGINTBajty dla całego poddrzewa. To jest kolumna raportu pamięci masowej.
najstarszy_plik_utcZNACZNIK CZASUNajwcześniejszy czas modyfikacji w dowolnym miejscu poddrzewa.
najnowszy_plik_utcZNACZNIK CZASUOstatni czas modyfikacji w dowolnym miejscu poddrzewa. Cała gałąź, której nikt nie ruszał od lat, pojawia się tutaj natychmiast.
jest_dostępnyBOOLE'AFałsz, gdy kontu agenta odmówiono uprawnień do odczytu folderu.
powód_pominięciaVARCHARWartość null, jeśli folder był przeglądany normalnie. W przeciwnym razie wyłączony, maksymalna_głębokośćlub zaprzeczony: wiadomość.

Folder, który nie został przeszukany, nadal otrzymuje wiersz, a jego cztery kolumny z liczbami i bajtami pozostają puste, zamiast być wypełnione zerami. To rozróżnienie jest celowe: zero oznaczałoby, że folder jest pusty, a null poprawnie oznacza, że łącznik nie wie. Raport pamięci masowej, który po cichu odczytuje zero bajtów dla jednego poddrzewa, którego agent nie widzi, jest gorszy niż ten, który dopuszcza lukę.

Raport o wykorzystaniu dysku: największe oddziały
WYBIERZ ścieżkę, liczbę_plików_poddrzewa JAK pliki, ZAOKR.(bajty_poddrzewa / 1073741824.0, 2) JAK gb, najnowszy_plik_utc JAK ostatnio_dotknięty Z katalogów GDZIE głębokość <= 2 I powód_pominięcia JEST NULL ZAMÓW WEDŁUG bajtów_poddrzewa OPIS LIMIT 25;

Ta sama tabela, połączona z niczym, odpowiada również na pytanie o nieaktualne dane. Sortowanie akta według rozmiaru w starym oknie modyfikacji wyświetla uporządkowaną listę kandydatów do archiwum — największych rzeczy, których nikt nie otwierał od lat, co jest dokładnie taką listą, jakiej potrzebuje czyszczenie magazynu i jakiej nie jest w stanie wygenerować okno dialogowe Właściwości.

Nieaktualne pliki warto najpierw zarchiwizować
WYBIERZ ścieżkę_nadrzędną, nazwę, zmodyfikowane_utc, właściciela, ZAOKR.(rozmiar_bajtów / 1048576.0, 1) JAKO mb Z plików GDZIE zmodyfikowane_utc < BIEŻĄCY_ZNACZNIK_CZASU - INTERWAŁ 3 LATA ZAMÓW WEDŁUG rozmiar_bajtów OPIS LIMIT 200;

wolumeny — pojemność i wolna przestrzeń

Każde przeszukanie zapisuje również stan dysku za każdym korzeniem, oparty na czasie korzenia i migawki, dzięki czemu wiersze kumulują się w serii, zamiast nadpisywać się wzajemnie.

KolumnaTypCo zawiera
identyfikator_rootVARCHARSkonfigurowany korzeń, do którego należy ten odczyt. Część klucza.
migawka_atZNACZNIK CZASUKiedy rozpoczęło się skanowanie odczytu. Część klucza.
etykietaVARCHAREtykieta woluminu. Jeśli wolumin nie ma etykiety, zastępowana jest nazwą dysku.
pojemność_bajtówBIGINTCałkowity rozmiar woluminu.
wolne_bajtyBIGINTNa koncie, z którego korzysta agent, jest jeszcze wolne miejsce.

Udziały UNC i niezamontowane katalogi główne często nie ujawniają statystyk woluminów. W takim przypadku wiersz jest nadal zapisywany z pustymi kolumnami pojemności i wolnego miejsca, ponieważ „ten katalog główny nie zgłosił statystyk woluminów” to fakt, który warto uwzględnić w danych, a nie wiersz po prostu pomijany w raporcie.

Jak blisko każdego korzenia jest pełnia?
WYBIERZ etykietę, ZAOKR.(pojemność_bajtów / 1073741824,0, 1) JAK pojemność_gb, ZAOKR.(wolne_bajty / 1073741824,0, 1) JAK wolne_gb, ZAOKR.(100,0 * wolne_bajty / pojemność_bajtów, 1) JAK pct_free Z woluminów GDZIE pojemność_bajtów NIE JEST NULL I migawka_w_wartości = (WYBIERZ MAX(snapshot_at) Z woluminów) ZAMÓW WEDŁUG pct_free;

Historia dziennego wzrostu

Obok czterech stołów znajduje się piąty, migawki katalogów, który istnieje wyłącznie po to, by odpowiedzieć na pytanie „czy sytuacja się pogarsza?”. Rejestruje rozmiar każdego folderu raz dziennie, w stałej, dziennej częstotliwości, niezależnie od częstotliwości synchronizacji łącznika, więc udział synchronizujący się co godzinę nie generuje dwudziestoczterokrotnie większej ilości danych historycznych.

KolumnaTypCo zawiera
migawka_atZNACZNIK CZASUCzytanie dnia. Część klucza, z identyfikator_root oraz ścieżka.
identyfikator_rootVARCHARKorzeń. Część klucza.
ścieżkaVARCHARFolder, pasujący ścieżka katalogów. Część klucza.
bezpośrednie_bajtyBIGINTBajty przechowywane tego dnia bezpośrednio w folderze.
poddrzewo_bajtówBIGINTBajty przechowywane przez całe poddrzewo w danym dniu.
liczba_plikówBIGINTLiczba plików poddrzewa, dopasowanie katalogi.liczba_plików_poddrzewa.

Migawki tworzone są tylko dla folderów, które faktycznie zostały przejrzane, a foldery, a nie pliki, są celowo głównym składnikiem struktury — jest ich o rzędy wielkości mniej, co sprawia, że wieloletnia seria jest na tyle mała, że można ją uznać za darmo.

Które foldery najbardziej się rozrosły w ciągu ostatnich 30 dni
WYBIERZ ścieżkę, PIERWSZE(poddrzewo_bajty ZAMÓW WEDŁUG snapshot_at) JAKO bytes_then, OSTATNIE (poddrzewo_bajty ZAMÓW WEDŁUG snapshot_at) JAKO bytes_now, ZAOKR.((OSTATNIE (poddrzewo_bajty ZAMÓW WEDŁUG snapshot_at) - PIERWSZE(poddrzewo_bajty ZAMÓW WEDŁUG snapshot_at)) / 1073741824.0, 2) JAKO grow_gb Z directory_snapshots GDZIE snapshot_at >= BIEŻĄCY_ZNACZNIK_CZASU - INTERWAŁ 30 DNI GRUPUJ WEDŁUG ścieżka ZAMÓW WEDŁUG grow_gb OPIS LIMIT 20;

Gdy nazwa pliku to dane

To jest część, której większość ludzi się nie spodziewa i często jest to powód, dla którego łącznik systemu plików zyskuje swoje miejsce.

Nazwy plików w folderze firmowym prawie nigdy nie są dowolne. Maszyny, programy eksportowe i skanery zapisują nazwy zgodnie z konwencją, która koduje rzeczywiste pola — datę, region, identyfikator maszyny, numer części, kod klienta. Zazwyczaj te informacje są uwięzione w ciągu znaków, a ich wydobycie oznacza pisanie funkcji łańcuchowych w każdym zapytaniu.

Zamiast tego możesz przypiąć wzorzec analizy nazwy pliku na złączu, a każdy token w nim staje się prawdziwą kolumną na akta tabela.

sprzedaż_2026_08_EMEA.csv
raportsprzedaż
rok2026
miesiąc08
regionEMEA

Za tym kryje się wzór {raport}_{rok}_{miesiąc}_{region}Tekst dosłowny między symbolami zastępczymi jest dopasowywany dosłownie, a wzorzec jest stosowany do nazwy pliku z usuniętym rozszerzeniem. Każdy token pasuje do kolejnego ogranicznika dosłownego, z wyjątkiem ostatniego, który jest zachłanny — więc końcowa nazwa części lub opis może zawierać podkreślenia bez zakłócania analizy składniowej.

W przypadku, gdy szablon nie może wyrazić czegokolwiek, należy dodać do wzorca prefiks wyrażenie regularne: i napisz wyrażenie regularne z nazwanymi grupami, takimi jak wyrażenie regularne:^(?<maszyna>[^_]+)_(?<znaczek>\d{8})_(?<część>.+)$Nazwane grupy stają się kolumnami. Surowe wyrażenie regularne otrzymuje pełną nazwę pliku wraz z rozszerzeniem, więc to Ty decydujesz, jak je obsłużyć. Dopasowanie jest ograniczone dwusekundowym limitem czasu, a wzorzec, który go przekroczy, jest liczony jako nieudane dopasowanie, a nie jako zawieszenie przeszukiwania.

Obok kolumn tokenów otrzymujesz nazwa_parse_ok Wartość logiczna. Nazwa pliku, która nie pasuje do przypiętego wzorca, nie jest pomijana i nie powoduje niepowodzenia synchronizacji: plik nadal otrzymuje swój wiersz ze wszystkimi standardowymi metadanymi, kolumny tokenów są ustawiane na null, a nazwa_parse_ok jest fałszywe. Naruszenie jest również zgłaszane w logu agenta, który nadaje nazwę plikowi i wzorzec. Znalezienie plików, które naruszają konwencję nazewnictwa, jest wtedy GDZIE NIE name_parse_ok away — co dla wielu zespołów oznacza audyt konwencji nazewniczych, jakiego nigdy wcześniej nie mogli przeprowadzić.

Kolizje nazw są odrzucane podczas zapisywania łącznika i nie są wykrywane później. Token powtarzający się w obrębie pewnego wzoru lub przesłaniający ustaloną kolumnę, taką jak nazwa, rozmiar_bajtów lub zmodyfikowany_utc, jest odrzucany z nazwy w momencie tworzenia. Podobnie jest z tokenem zadeklarowanym zarówno we wzorcu nazwy pliku, jak i w tokenach folderu. Kolumna, która po cichu przesłaniałaby prawdziwą kolumnę, byłaby zdecydowanie błędnym generatorem odpowiedzi, więc łącznik odmawia zapisania.

Strukturę folderów można przekształcić w kolumny w ten sam sposób. Drzewo jest ułożone w następujący sposób: 2026/08/EMEA/…, wymieniając trzy tokeny folderów daje kolumnę na poziom: pierwsza nazwa pierwszego segmentu ścieżki poniżej korzenia, druga nazwa drugiego itd. Segmenty, które okazują się być nazwami plików, a nie folderów, pozostają puste, więc plik znajdujący się wyżej w drzewie niż oczekiwane przez tokeny nie generuje wartości bezsensownej.

Dzięki tym dwóm funkcjom drzewo folderów z przypisaną mu konwencją staje się odpowiednio wymiarowaną tabelą. Grupowanie archiwum skanów według maszyny i miesiąca przestaje być ćwiczeniem z analizy ciągów znaków, a staje się zwykłym GROUP BY.

Haszowanie i wyszukiwanie duplikatów plików

Wykrywanie duplikatów po nazwie jest praktycznie bezużyteczne, ponieważ kopie nigdy nie mają tej samej nazwy. Contract_final.pdf, Contract_final_v2.pdf oraz Umowa OSTATECZNA (kopia Amy).pdf mogą być identyczne bajt po bajcie i żadne sprytne dopasowywanie nazw tego nie udowodni.

Włączenie funkcji haszowania powoduje, że każdy plik otrzymuje skrót SHA-256 w haszysz Kolumna, a następnie duplikaty są grupowane według zawartości. Pliki z tym samym hashem to ten sam plik, niezależnie od nazwy i miejsca, w którym się znajdują.

Znajdź duplikaty plików i dowiedz się, ile kosztują
WYBIERZ LICZBA(*) JAKO kopie, ZAOKR.(MAX(rozmiar_bajtów) / 1048576.0, 1) JAK każdy_mb, ZAOKR.((SUMA(rozmiar_bajtów) - MAX(rozmiar_bajtów)) / 1048576.0, 1) JAK wasted_mb, STRING_AGG(ścieżka_względna, ' | ') JAKO ścieżki Z plików GDZIE hash NIE JEST NULL GRUPUJ WEDŁUG hash MAJĄC LICZBĘ(*) > 1 ZAMÓW WEDŁUG wasted_mb OPIS LIMIT 50;

Haszowanie ma drugie, mniej oczywiste zastosowanie. Zwykłe przeszukiwanie wykrywa zmianę poprzez porównanie rozmiaru i czasu modyfikacji, co pomija przypadki, w których treść uległa zmianie, ale żadne z nich się nie zmieniło — np. plik przywrócony z kopii zapasowej, narzędzie do kopiowania zachowujące znaczniki czasu lub dokument zmieniony przez coś, co stara się pozostać niezauważone. Gdy hasz ulega zmianie, a rozmiar i data pozostają bez zmian, łącznik rejestruje zmodyfikowany wydarzenie i je oznacza wykryto_przez = 'hash', dzięki czemu będziesz wiedział, który poziom go złapał.

Hashowanie jest tutaj jedyną metodą odczytu bajtów pliku, ale domyślnie jest wyłączone. Obliczanie skrótu oznacza strumieniowanie całego pliku, więc w przypadku dużego udziału przekształca on spacer metadanych w rzeczywisty ruch dyskowy i sieciowy. Tylko pliki o rozmiarze nieprzekraczającym limitu hashowania są hashowane — 32 MB domyślnie, podnoszony do 1 GB — a wszystko większe pozostaje z wartością null haszysz Zamiast wstrzymywać skanowanie. Nic nie jest zachowywane poza skrótem: żadna część zawartości pliku nie jest analizowana, przechowywana ani przesyłana. Plik, którego nie można odczytać, jest rejestrowany, zachowuje swój wiersz metadanych, a skanowanie jest kontynuowane.

Rozsądnym podejściem w przypadku dużego udziału jest zawężenie łącznika najpierw za pomocą wzorca dołączania — należy utworzyć skrót folderów dokumentów, których duplikacja faktycznie wiąże się z kosztami, a archiwum multimediów pozostawić w spokoju na metadanych.

Co się dzieje, gdy plik zniknie

Plik, który znajdował się w inwentarzu i nie ma go już na dysku, zawsze generuje zniknął wiosłować pliki_wydarzeniaTo, co stanie się z wierszem w inwentarzu, zależy od zasad usuwania.

Usuń zasadyCo się dzieje z rzędem
upuszczać (domyślny)Wiersz został usunięty z inwentarza. zniknął wydarzenie jest historią i akta zawiera tylko to, co istnieje teraz.
nagrobekRząd przetrwał dzięki stan = 'zniknął', zachowując ostatni znany rozmiar pliku, daty i hash. Jego ostatnio_widziany_utc pozostaje przy ostatnim zamiataniu, które naprawdę to zobaczyło i liczba_zmian jest zwiększany.

Nagrobki to właściwy wybór, gdy zależy Ci na tym, czym był usunięty plik – jak duży był archiwum faktur, zanim ktoś je uporządkował, albo jaki był skrót pliku przed jego usunięciem. Ponieważ akta zobacz filtry na stan = 'obecny'włączenie nagrobków nie może zniekształcić raportu, który zawiera zapytania akta; musisz poprosić o pliki_bieżące żeby je zobaczyć.

Co jest pomijane i co dzieje się z dowiązaniami symbolicznymi

Niektóre foldery stanowią szum w każdym kiedykolwiek przeprowadzonym inwentarzu, dlatego przed Twoimi własnymi wykluczeniami zawsze stosowane są cztery:

  • **/moduły_węzła/** — największe pojedyncze źródło bezsensownej liczby plików na komputerze każdego programisty.
  • **/.git/** — wewnętrzne informacje o repozytorium, które nie mówią nic o twoich danych.
  • **/$RECYCLE.BIN/** — usunięto pliki, które w innym przypadku byłyby uznawane za aktywne.
  • **/Informacje o woluminie systemowym/** — Stan systemu Windows, którego agent zazwyczaj i tak nie może odczytać.

Własne wzorce wykluczeń są dodawane do tych wzorców zamiast je zastępować, a wzorce uwzględniania zawężają skanowanie do plików, które faktycznie chcesz zindeksować — ustaw je na **/* dla pełnego inwentarza, ponieważ czarodziej je zasiewa **/*.csv. W szczególności ukryte i systemowe akta nie są pomijane: narzędzie do inwentaryzacji, które ich nie widzi, nie jest inwentarzem, więc wzorce wykluczające są filtrem śmieci, a nie flagi atrybutów.

Każdy pominięty folder staje się wierszem w katalogi z powód_pominięcia. Wykluczone foldery mówią wyłączony, foldery poza limitem głębokości mówią maksymalna_głębokość, a folder, do którego odmówiono dostępu kontu agenta, staje się is_accessible = false wiersz z własnym komunikatem systemu operacyjnego. Nic nie jest pomijane w sposób ukryty, więc granica tego, co faktycznie indeksowałeś, jest widoczna w danych, a nie trzeba jej rekonstruować z konfiguracji.

Dowiązania symboliczne, połączenia i inne punkty ponownej analizy to nie jest domyślnie przestrzeganeTo celowa ochrona cyklu: węzeł wskazujący na własnego rodzica zamienia rekurencyjny spacer w spacer nieskończony, a link do innego udziału po cichu podwaja rozmiar skanowania. Jeśli twoje drzewo rzeczywiście opiera się na linkach, aby dotrzeć do danych, istnieje… followSymlinks opcja, ale jest wyłączona, dopóki jej nie włączysz i nie warto jej włączać świadomie.

Limity skanowania i jak wygląda odmowa

Złącze skierowane w niewłaściwe miejsce mogłoby próbować indeksować całą macierz dyskową, dlatego ścieżka ma zabezpieczenia. Ustawienia domyślne pasują do zwykłego udziału; każde z nich można podnieść.

Barierka ochronnaDomyślnyMaksymalny
Pliki na skanowanie100,0002,000,000
Głębokość folderu8 poziomów64 poziomy
Budżet czasu skanowania300 sekund3600 sekund
Rozmiar pliku haszowanego32 MB1 GB
Historia wydarzeń30 dni10 lat

Jeśli skanowanie przekroczy jeden z tych parametrów, odmawia i nazywa czapkę, którą uderzył, wraz z rozwiązaniami: zawęź korzenie lub wzorce uwzględnienia, zmniejsz głębokość lub podnieś limit. Nie przechowuje tego, co udało się zebrać. Inwentaryzacja systemu plików, w której po cichu brakuje jednej trzeciej udziału, jest gorsza niż brak inwentaryzacji, ponieważ każdy raport na jej podstawie wygląda wiarygodnie, a jest błędny — folder, który wydaje się mieć 40 GB, podczas gdy ma 600 GB, nie jest traktowany jako błąd, lecz jako odpowiedź.

Ta sama zasada dotyczy samych ustawień. Pozostawienie pustego limitu lub ustawienie go na zero oznacza „użyj restrykcyjnej wartości domyślnej”, nigdy „nieograniczonej”; wartości jawne są ograniczone do maksymalnego limitu. Nie ma konfiguracji, w której łącznik zestawu plików poruszałby się bez ograniczenia.

Zapytania są tylko do odczytu i jest to wymuszane, a nie obiecane. Zapytanie musi być pojedynczym poleceniem i tylko SELECT, Z, PRAGMA, OPISAĆ oraz WYJAŚNIĆ są akceptowane. Ponieważ ten łącznik zawiera wyłącznie metadane, najmocniejszą rzeczą, jaką zapytanie może zrobić, jest podanie rozmiaru pliku.

Każde ustawienie na karcie systemu plików i kiedy je zmienić

Karta systemu plików to najkrótsza forma konfiguracji w rodzinie zestawów plików, a powód jest warty uwagi. Nie ma sekcji formatowania. Nie ma nazwy tabeli, ogranicznika, przełącznika nagłówka, kodowania, selektora arkuszy, spłaszczania głębokości, limitów wierszy i bajtów dla pliku lub synchronizacji ani nadpisywania manifestu. Pola te nie są ukryte za przełącznikiem i nie są domyślnymi wartościami, które można by wyszukać i zmienić — w ogóle nie ma ich na karcie, a złącze usuwa je z zapisywanego pliku, jeśli cokolwiek spróbuje je wysłać.

Ta nieobecność stanowi strukturalny dowód twierdzenia, od którego rozpoczął się ten przewodnik. Nie ma ustawienia, które mogłoby spowodować otwarcie jednego z plików przez konektor systemu plików, ponieważ pola, które by to konfigurowały, nie istnieją w tym miejscu. Jedyną opcją, która w ogóle wpływa na bajty pliku, jest opcjonalne haszowanie, które oblicza skrót i nie przechowuje niczego innego.

Poniżej znajduje się każde pole na karcie, w kolejności, w jakiej kreator je prezentuje, wraz z ich rzeczywistą wartością domyślną i sytuacją, która wymagałaby zmiany. Jedna z tych wartości domyślnych jest nieprawidłowa dla inwentaryzacji systemu plików, więc przeczytaj wpis dotyczący wzorców dołączania, nawet jeśli pominiesz resztę.

Siedem z tych pól pozostaje ukrytych, dopóki nie zaznaczysz opcji „Pokaż opcje zaawansowane”. Za tym przełącznikiem kryją się funkcje haszowania, ograniczenia rozmiaru haszowania, zasady usuwania, retencja zdarzeń, paralelizm skanowania, budżet czasowy i limit pliku. Jeśli poniższe ustawienie nie jest widoczne na ekranie, to właśnie dlatego.

Źródło. Sześć pól, które decydują o tym, które foldery są przeglądane i które pliki są rejestrowane. W przypadku inwentaryzacji są to pola najważniejsze, ponieważ definiują one znaczenie słowa „wszystko”.

Foldery główne

Wymagane. Jeden folder na wiersz. To są ścieżki takie jak maszyna agenta widzi je — lokalną ścieżkę, taką jak D:\finanselub ścieżka UNC taka jak \\serwerplików\finanseLitera dysku zamapowana wyłącznie na Twoim pulpicie nie zostanie rozpoznana na serwerze, na którym działa agent.

Każdy plik jest identyfikowany za pomocą pary jego katalogu głównego i ścieżki względem tego katalogu. Ma to jedną konsekwencję, o której warto wiedzieć przed zapisaniem pliku: zmień później korzeń, a wszystko pod nim zostanie ponownie zidentyfikowane jako nowe. Ten first_seen_utc kolumna resetuje się, a dziennik zmian wypełnia się pojawił się Wiersze dla plików, które leżały tam przez lata. Sposób zapisu katalogu głównego ma znaczenie. Jest on znormalizowany do ścieżki bezwzględnej z ukośnikiem, bez ukośnika na końcu, więc przypadkowy ukośnik na końcu nie robi różnicy — ale ścieżka UNC i ścieżka lokalna do tego samego folderu to dwa różne katalogi główne z punktu widzenia inwentaryzacji. Określ formę katalogu głównego raz.

Dodaj drugi korzeń, gdy powiązane drzewa znajdują się w dwóch miejscach i chcesz, aby jeden inwentarz obejmował oba — \\nas\finanse oraz \\nas\legalna przykład. identyfikator_root kolumna oddziela je w każdej tabeli i kłęby raportuje pojemność i wolną przestrzeń na każdy korzeń, więc dwa korzenie na różnych dyskach dają dwa ciągi pojemności, a nie jedną niewyraźną liczbę.

Skanuj podfoldery

Domyślnie: włączone. Zostaw to włączone na czas inwentaryzacji, ponieważ to drzewo jest tym, co chcesz zinwentaryzować. Wyłącz je tylko wtedy, gdy najbardziej interesują Cię bezpośrednie potomstwo korzeni – folder, który śledzisz na bieżąco, a podfolder archiwum pod nim zwielokrotniłby skanowanie i nie powiedziałby Ci nic nowego.

Z wyłączonym, Maksymalna głębokość znika z formularza, ponieważ nie ma już żadnej rekurencji, która pozwoliłaby mu się zamknąć. Włącz rekurencję ponownie, a pole głębi pojawi się ponownie z nienaruszoną wartością.

Maksymalna głębokość

Domyślnie: 8. Wymagane, gdy opcja Skanuj podfoldery jest włączona, a kreator odmawia zapisu bez liczby całkowitej z przedziału od 1 do 64. Jest to ograniczenie obowiązkowe, a nie opcjonalne, co jest celowe: nie ma konfiguracji, w której to złącze sięgałoby nieznanej głębokości.

Kiedy podnieść. Osiem poziomów wygodnie pokrywa zwykłą akcję. Głębokie drzewa archiwalne to miejsce, gdzie gryzie: rok/miesiąc/dzień/godzina Układ ma cztery poziomy przed pojawieniem się pliku, a foldery dla poszczególnych klientów i projektów poniżej będą działać nawet po przekroczeniu ośmiu poziomów, niezauważalnie dla nikogo. Archiwa zeskanowanych dokumentów i magazyny projektów inżynieryjnych to częste problemy.

Co się stanie, jeśli popełnisz błąd, jest widoczne, a nie ukryte, o co w tym chodzi powód_pominięcia kolumna. Każdy folder, na którym zatrzymał się spacer, otrzymuje swój wiersz z skip_reason = 'maksymalna_głębokość', więc jedno zapytanie powie Ci dokładnie, gdzie kończą się Twoje zapasy.

Czy ograniczenie głębokości ograniczyło możliwość chodzenia?
WYBIERZ root_id, ścieżka, głębokość Z katalogów GDZIE skip_reason = 'max_depth' ZAMÓW WEDŁUG root_id, ścieżka;

Uruchom to po pierwszym zamachu. Rzędy, na których Ci zależy, oznaczają zwiększenie głębokości; brak rzędów oznacza, że osiem wystarczyło. Zmniejszenie głębokości to również uzasadniona taktyka – głębokość 2 lub 3 przeciwko rozległemu udziałowi daje szybki raport na najwyższym poziomie – ale bądź szczery wobec siebie, co ten raport mówi. poddrzewo_bajtów suma plików, które przeszukałeś w folderze, uwzględnia tylko te, które zostały zindeksowane, więc płytkie skanowanie zaniża rozmiary folderów zamiast je przybliżać.

Uwzględnij wzorce

Wzory glob, po jednym w wierszu, decydują, które pliki otrzymają wiersz. To jest jedyne pole na karcie, którego domyślne ustawienie początkowe jest nieprawidłowe dla tego, co prawie na pewno próbujesz zrobić, i warto to poprawić przed zapisaniem, a nie po.

Kreator wstępnie wypełnia wzory z opcją Dołącz **/*.csvZmień to na **/* dla prawdziwego inwentarza. Ta wartość domyślna jest dziedziczona z definicji pola współdzielonego, z której korzystają również karty folderów CSV, Parquet i JSONL, gdzie wzorzec specyficzny dla formatu jest dokładnie taki sam. W przypadku konektora systemu plików tak nie jest. Zaakceptuj ją bez zmian, a otrzymasz indeks plików CSV w swoim udziale i nic więcej — żadnych dokumentów, obrazów, archiwów ani dysków maszyn wirtualnych — z sumami folderów, które obejmują niewielki fragment dysku. Raport będzie wyglądał całkowicie wiarygodnie, co właśnie czyni go niebezpiecznym. Ustaw **/* zanim zapiszesz.

Po skorygowaniu tego, celowe zawężanie wzorca staje się użytecznym narzędziem, a nie pułapką. **/*.pdf Daje ci inwentaryzację wyłącznie dokumentów w udziale, którego folderami multimediów nikt nie zarządza, a także jest najtańszym sposobem na uczynienie hashowania niedrogim — hashuj foldery dokumentów, których duplikaty kosztują prawdziwe pieniądze, i pozostaw archiwum wideo w spokoju na metadanych. Wzorzec o zasięgu gałęzi, taki jak eksporty/**/* ma rodzeństwo archiwum całkowicie usunąć folder z inwentarza plików.

Jedno wyjaśnienie, które pozwala uniknąć nieporozumień: to pole filtruje akta. Foldery są nadal przeszukiwane i nadal otrzymują swoje wiersze katalogiCałkowite wykluczenie folderu ze ścieżki to zadanie wykluczania wzorców i Maksymalna głębokość.

Wyklucz wzorce

Cztery domyślne ustawienia są wstępnie wypełnione i wszystko, co dodasz, będzie miało charakter dodatkowy, a nie zastępczy. moduły_węzłów, .git, $RECYCLE.BIN oraz Informacje o woluminie systemowym Są one wykluczone z każdego łącznika zestawu plików, niezależnie od tego, czy pojawiają się w polu, czy nie, więc wyczyszczenie pola tekstowego nie przywraca ich do zakresu. Nie ma sposobu, aby je wyłączyć, i nie ma powodu, aby tego chcieć.

Co dodać, szczególnie w przypadku inwentaryzacji. Warto poświęcić czas na wzorce, które w przeciwnym razie spowodowałyby zwiększenie objętości raportu o dane, którymi nikt nie zarządza, np. lokalny cel kopii zapasowej, katalog dysku maszyny wirtualnej, folder pamięci podręcznej aplikacji, który sam się regeneruje. **/~$* jest dobry w każdym współdzielonym miejscu, z którego ludzie otwierają pliki Microsoft Excel, ponieważ są to pliki blokady, a nie dokumenty, i ciągle pojawiają się i znikają — wykluczanie ich pozwala zachować dziennik zmian dotyczący rzeczywistych plików.

Wykluczenie folderu nie powoduje jego ukrycia. Nadal otrzymuje wiersz w katalogi z skip_reason = 'wykluczony' i zerowe wartości, dzięki czemu kształt tego, co celowo pominąłeś, pozostaje widoczny obok tego, co zmierzyłeś.

Podążaj za dowiązaniami symbolicznymi i połączeniami

Domyślnie: wyłączone, oznacza to ochronę cyklu. Pomijanie punktów ponownej analizy zapobiega temu, aby węzeł wskazujący na swojego rodzica zamienił spacer rekurencyjny w spacer nieskończony.

Scenariusz włączenia to korzeń, w którym prawdziwe dane rzeczywiście znajdują się za linkami — typowym przypadkiem jest folder nadrzędny, który montuje pamięć masową każdego działu jako węzeł, a po pominięciu linków indeksy korzenia są traktowane jako garstka pustych folderów. Jeśli tak właśnie jest w Twoim przypadku, włącz go świadomie.

Ryzyko polega na podwójnym liczeniu, a nie tylko na zapętlaniu. Link do innego udziału przenosi pliki tego udziału do inwentarza w ramach drugiej ścieżki, więc te same bajty są liczone raz w każdym z nich, a raport o pojemności zawyża dysk. Jeśli włączysz tę funkcję, porównaj sumy z danymi raportowanymi przez sam wolumin. kłęby zanim rozpowszechnisz numery.

Schemat. Dwa pola opcjonalne, oba omówione szczegółowo wcześniej w tym przewodniku.

Wzorzec analizy nazw plików i nazwy tokenów folderów

Oba pola są opcjonalne, oba domyślnie puste. Pierwsze to pole jednowierszowe, które przyjmuje formę szablonu tokena lub wyrażenie regularne: Wyrażenie z prefiksem; drugie to pole tekstowe przyjmujące jedną nazwę tokena w wierszu, w kolejności zgodnej ze ścieżką dostępu. Gramatyki, reguły kolizji i to, co dzieje się z nazwą pliku, która nie pasuje, są omówione w Gdy nazwa pliku to dane powyżej i nie ma sensu przytaczać ich tutaj ponownie.

Warto dodać, dlaczego zasługują na swoje miejsce na liście spis a nie na złączu danych. Inwentaryzacja archiwum skanów, która ma maszyna, data oraz część ponieważ prawdziwe kolumny można grupować i analizować trendy jak każdą inną tabelę, co stanowi różnicę między listą plików a raportem. nazwa_parse_ok zapewnia bezpłatny audyt zgodności z konwencją nazewnictwa: pliki łamiące konwencję to GDZIE NIE name_parse_ok dalej, na liście, której nikt nigdy nie był w stanie sporządzić.

Wykrywanie zmian. Jak często agent sprawdza i co uznaje się za zmianę.

Interwał skanowania

Domyślnie: co godzinę. Dostępne opcje to co 5 minut, co 15 minut, co 30 minut, co godzinę, co 6 godzin i codziennie. Dopasuj to do sposobu, w jaki folder jest faktycznie zasilany, i pamiętaj, że każde przeszukanie to pełne przejście po drzewie, a nie krok po kroku, więc płacisz za interwał.

Szybkie zakończenie. Folder, który śledzisz pod kątem przybycia, potrzebuje 5 minut, ponieważ pytanie brzmi: „Czy wczorajszy eksport już dotarł?”, a odpowiedź co godzinę to nie jest odpowiedź. Te foldery są małe, więc koszt jest znikomy.

Powolne zakończenie. Archiwum zawierające 400 000 plików wymaga codziennego użytku. Nic w nim nie zmienia się co godzinę, a przeglądanie go dwadzieścia cztery razy dziennie zapewnia dwadzieścia trzy identyczne migawki i dużą aktywność dyskową na serwerze plików. Jeśli archiwum współdzieli wrzeciono z czymś, z czego korzystają inni użytkownicy, jest to najbardziej rozważne ustawienie na karcie.

Dwie konsekwencje wolniejszego interwału, abyś mógł to uczciwie rozważyć. Interwał to rozdzielczość dziennika zmian, więc plik, który pojawił się i zniknął między dwoma przeglądami, nigdy nie jest rejestrowany — jeśli wychwytywanie plików o krótkim czasie życia ma znaczenie, to jest to argument za 5 minutami, a nie 6 godzinami. Z drugiej strony, historia wzrostu nie cierpi: migawki katalogów jest pisany w stałym, dziennym rytmie, niezależnie od interwału synchronizacji, więc wykres dzienny przedstawia dokładnie taki sam trend wzrostu, jak wykres godzinowy.

Zaawansowany. Pozostałe siedem pól pojawia się tylko wtedy, gdy Pokaż opcje zaawansowane jest zaznaczone. Domyślne ustawienia są bezpieczne, więc pozostawienie przełącznika bez zmian to rozsądny pierwszy krok — ale cztery z nich to te, po które będziesz wracać.

Zawartość pliku hash

Domyślnie: wyłączone, ponieważ jest to jedyna rzecz na tej karcie, która odczytuje bajty plików, a to jest kosztowna warstwa. Jest to również jedyna warstwa, która wychwytuje edycję, która zachowała znacznik czasu pliku. Obie strony tej transakcji są omówione w Haszowanie i wyszukiwanie duplikatów plików powyżej.

Jak prawidłowo go używać: Pozostaw go wyłączonym na pierwsze przeszukanie, sprawdź, co pokazuje inwentarz, a następnie włącz go, zawężając wzorzec dołączania do folderów, w których duplikaty faktycznie generują koszty. Włączanie go w udziale multimediów o rozmiarze wielu terabajtów w celu znalezienia duplikatów w folderze kontraktów to błąd, którego należy unikać, i jest on całkowicie możliwy do uniknięcia.

Maksymalny rozmiar pliku do hashowania (bajty)

Domyślnie: 33 554 432 bajtów — 32 MB. Pole pojawia się tylko po włączeniu haszowania i jest wyrażone w bajtach, a nie megabajtach, więc wpisz liczbę: 33554432 dla 32 MB, 268435456 dla 256 MB, do limitu 1 GB.

Pliki większe niż ten są nigdy hashowane. Zachowują cały wiersz metadanych z wartością null haszysz i powrócić do wykrywania zmian rozmiaru i daty, więc nic się nie zepsuje — ale są one również niewidoczne dla zapytania o duplikaty, co jest trybem awarii, na który należy zwrócić uwagę. Jeśli duplikat, którego szukasz, znajduje się w plikach projektowych, wideo lub obrazach maszyn wirtualnych, 32 MB oznacza, że haszowanie jest włączone i nie działa w przypadku plików, na których Ci zależy. Jedno zapytanie po przeszukaniu haszującym pokazuje, ile plików zostało pominiętych przez ograniczenie:

Ile plików pominęło ograniczenie skrótu?
WYBIERZ LICZNIK(*) JAKO niehaszowane, ZAOKRĄGL(SUMA(rozmiar_bajtów) / 1073741824.0, 1) JAKO niehaszowane_gb, ZAOKRĄGL(MAX(rozmiar_bajtów) / 1048576.0, 1) JAKO największy_mb Z plików GDZIE hash JEST NULL;

Kiedy plik znika

Domyślnie: Usuń wiersze. Alternatywą jest Zachowaj rzędy, zaznacz usunięte (nagrobek). Co każdy robi z inwentarzem, jest określone w Co się dzieje, gdy plik zniknie powyżej.

Powodem wyboru nagrobków, specyficznym dla inwentarza, jest to, że odpowiadają one na pytanie „co zniknęło i co to było?” z samego inwentarza, a nie z dziennika zmian – z dołączonym ostatnim znanym rozmiarem pliku, datami i hashem. To ma większe znaczenie, niż się wydaje na pierwszy rzut oka, ponieważ dziennik zmian jest przycinany zgodnie z poniższym ustawieniem retencji, a wiersze oznaczone jako nagrobne nie są. Jeśli powodem indeksowania udziału jest to, że giną w nim elementy, nagrobki stanowią trwały zapis, a dziennik zdarzeń to zapis najnowszy.

Czas przechowywania dziennika zdarzeń (dni)

Domyślnie: 30 dni, do pułapu 3650 — dziesięć lat. To pole, o którym warto pomyśleć przed pierwszym zaliczeniem, a nie po nim, a powód jest oczywisty: granice retencji, jak daleko sięga twoja historiaTrzydzieści dni przechowywania oznacza trzydzieści dni historii i żadne zapytanie nie jest w stanie odzyskać tego, co zostało już przycięte.

Dotyczy to bezpośrednio historii wzrostu opisanej wcześniej. Jeśli chcesz uzyskać roczny trend dla raportu „które foldery odnotowały największy wzrost” – raportu, który przekształca dyskusję o budżecie na przechowywanie danych z argumentu w wykres – ustaw tę opcję na 365 Teraz. Ustawienie go na jedenaście miesięcy daje rok retencji i miesiąc danych. Historia kumuluje się dopiero od momentu, gdy okno jest wystarczająco szerokie, aby ją zachować.

Koszt szerokiego okna jest niewielki. Wiersze zdarzeń są wąskie, a seria wzrostu jest rejestrowana dla każdego folderu dziennie, a nie dla każdego pliku, więc wieloletnia retencja w udziale zawierającym kilka tysięcy folderów jest mierzona w megabajtach. Obniż ją poniżej 30 tylko wtedy, gdy naprawdę nigdy nie sprawdzasz, co się zmieniło.

Paralelizm skanowania na pierwiastek

Domyślnie: 2. Zakres od 1 do 16. Właściwym podsumowaniem jest własna rada kreatora: skanery równoległe pomoc na SSD i NAS, a szkoda na dysku wirującymPamięć masowa SSD i serwer NAS z prawdziwym kontrolerem mogą obsługiwać kilka wyliczeń katalogów jednocześnie; pojedynczy napęd mechaniczny nie jest w stanie tego zrobić, a jednoczesne działanie funkcji odczytu sprawia, że odczyt sekwencyjny staje się chaotyczny, co spowalnia przeszukiwanie, a nie przyspiesza proces.

Jak to ustawić. Udział oparty na dysku SSD z setkami tysięcy małych plików w wielu folderach to przypadek, w którym korzyści — spróbuj 4, zmierz zasięg, spróbuj 8. Archiwum na dysku wirującym lub powolnym udziale zdalnym powinno przejść do 1. Ustawienie to na korzeń, więc cztery pierwiastki przy równoległości 4 oznaczają szesnastu równoczesnych spacerowiczów trafiających do twojej pamięci; jeśli pierwiastki współdzielą urządzenie, licz je razem, a nie pojedynczo.

Oddziałuje z polem poniżej. Zwiększenie paralelizmu to typowy sposób na umieszczenie dużego drzewa w budżecie czasu skanowania bez zawężania zakresu; zmniejszenie go do 1 na niewłaściwym sprzęcie mogło być przyczyną przekroczenia budżetu.

Budżet czasu skanowania (sekundy)

Domyślnie: 300 sekund, do 3600 – jedna godzina. Przekroczenie budżetu zatrzymuje się i raportuje, zamiast działać bez ograniczeńTo właśnie jest gwarancja, którą to pole ma zapewnić: żadna konfiguracja tego łącznika nie spowoduje przejścia trwającego tak długo, jak długo trwa udział, który okazał się znacznie większy, niż ktokolwiek przypuszczał.

Kiedy podnieść. Pierwszy pełny przegląd dużego drzewa jest kosztowny, a zimny serwer NAS lub udział w sieci połączony przez łącze WAN jest wolniejszy w przeliczeniu na folder niż lokalny magazyn o rząd wielkości. Jeśli pierwsze skanowanie zgłosi budżet czasu, masz trzy rozsądne opcje: zwiększyć budżet, zwiększyć paralelizm, jeśli magazyn go przyjmie, lub zawęzić korzenie i wzorce dołączania. Zwiększenie budżetu jest poprawną odpowiedzią, gdy udział jest naprawdę duży; pozostałe są poprawnymi odpowiedziami, gdy zakres był szerszy, niż zakładałeś.

Puste oznacza wartość domyślną. Zero jest odrzucane, tak jak w przypadku każdej nakrętki.

Maksymalna liczba plików na skanowanie

Domyślnie: 100 000, z możliwością podniesienia do pułapu agenta wynoszącego 2 000 000. Puste pole oznacza wartość domyślną, a 0 oznacza całkowitą odmowę — nigdy nie oznacza „nieograniczony”. Żadna wartość wpisana w tym miejscu nie usunie granicy.

Przekroczenie tej wartości stanowi odmowę, a nie skrócenie, a uzasadnienie podano w Limity skanowania i jak wygląda odmowa Powyżej. W praktyce jest to limit, który większość osób spełnia jako pierwszy, ponieważ 100 000 plików to standardowy udział w dziale, a duży znacznie go przekracza. Archiwum zawierające 400 000 plików wymaga tego przed zakończeniem pierwszego przeszukiwania, a łącznik poinformuje o tym po nazwie, zamiast po cichu indeksować pierwsze sto tysięcy plików, na które natrafi.

Ma drugie, cichsze zastosowanie: jest drutem wyzwalającym na źle wpisanym rdzeniu. Łącznik przeznaczony do D:\ zamiast D:\finanse osiąga limit i odmawia działania, co jest znacznie lepszym rozwiązaniem niż całodobowy przegląd całej macierzy dyskowej.

Czego nie ma na tej karcie i dlaczego

Czytając inne przewodniki z tej rodziny, zobaczysz ustawienia, które nie mają tu odpowiednika. Ich brak to raczej kwestia projektu niż luki:

  • Brak nazwy tabeli i układu tabeli — nie ma tabeli danych do nazwania ani kształtu kolumn, który mógłby się różnić w zależności od pliku. Cztery tabele metadanych mają stałe nazwy i stały kształt.
  • Brak rozdzielacza, cudzysłowu, nagłówka, kodowania, pustych ciągów znaków lub formatu daty — każdy z nich opisuje sposób interpretacji tekstu wewnątrz pliku.
  • Brak wyboru arkusza, wyboru tabeli członków, kolumny znaczników rekordów lub spłaszczenia głębokości — wszystkie z nich wybierają, która część zawartości pliku stanie się tabelą.
  • Brak limitów wierszy i bajtów na plik lub synchronizację — te ograniczenia określają, ile treści pliku jest pobierane, a tutaj nie pobiera się żadnej treści. Limity na tej karcie ograniczają chodzić Zamiast tego: pliki, głębia i czas.
  • Brak jawnych nadpisań — zmiana nazwy, przepisanie i wykluczenie kolumn dotyczy próbkowanego kształtu, który należało odgadnąć. Nic tutaj nie jest odgadnięte, więc nie ma czego poprawiać.

Jeśli chcesz mieć zarówno spis folderów oraz dane w plikach, czyli dwa łączniki skierowane do tego samego katalogu głównego — łącznik systemu plików dla metadanych i łącznik formatu dla zawartości. Współistnieją one swobodnie, nie zakłócając się wzajemnie, a oba zestawy tabel łączą się na ścieżce pliku. Jak działają łączniki zestawu plików obejmuje stronę formatu.

Konfigurowanie

Potrzebujesz konta Query Streams i agenta sieciowego zainstalowanego na komputerze, który widzi folder — serwerze plików, stacji roboczej z zamontowanym udziałem lub własnym laptopie. Łączniki File Set wymagają Agent sieciowy 2.6 lub nowszy.

  1. Zainstaluj agenta z strona pobierania jeśli jeszcze tego nie zrobiono.
  2. W portalu dodaj łącznik danych i wybierz System plików.
  3. Wprowadź jedną lub więcej ścieżek głównych, tak jak widzi je maszyna agenta.
  4. Zmień wzór dołączenia z **/*.csv do **/*. Domyślne indeksowanie dotyczy tylko plików CSV, które nie są inwentarzem. Dodaj dodatkowe wzorce wykluczeń dla wszystkiego, co jest szumem.
  5. Sprawdzać Maksymalna głębokość w stosunku do twojego drzewa. Osiem poziomów to wartość domyślna; archiwum z dużą liczbą dat lub archiwum dla każdego projektu wymaga więcej.
  6. Wyłącz haszowanie przy pierwszym uruchomieniu. Zaindeksuj drzewo, sprawdź, co masz, a następnie włącz haszowanie dla folderów, w których duplikaty mają znaczenie.
  7. Dodaj wzorzec analizy nazwy pliku, jeśli folder jest nazewnictwem zgodnym z konwencją, którą chcesz stosować w przypadku kolumn.
  8. Zapisz. Agent przegląda drzewo i raportuje liczbę znalezionych plików i folderów, a także wszystkich, których nie mógł odczytać.
  9. Otwórz kreator zapytań, wybierz łącznik i wykonaj zapytanie akta, katalogi lub kłęby — lub poproś Nova AI o napisanie zapytania za Ciebie.
Skorzystaj ze ścieżki, którą widzi agent i sprawdź, co jego konto może odczytać. Litera dysku zamapowana na Twoim pulpicie nie zostanie rozpoznana na serwerze, na którym działa agent — użyj ścieżki UNC, takiej jak \\serwerplików\finanse lub ścieżka lokalna na komputerze agenta. Uprawnienia mają tu większe znaczenie niż w innych trybach: konto, z którego korzysta agent, definiuje inwentarz, a wszystko, czego odmówiono, pojawia się jako is_accessible = false wiersz, a nie jako dane.

Po utworzeniu inwentarz staje się źródłem danych jak każde inne. Może zasilać dodatek do programu Microsoft Excel lub Arkuszy Google, planowaną synchronizację z Airtable lub Smartsheet, Nova AI, asystenta AI za pośrednictwem serwera Query Streams MCP lub punkt końcowy REST — i łączy się z innymi łącznikami. Audyt plików staje się znacznie ciekawszy, gdy archiwum skanowania w udziale można połączyć z rekordami zadań w programie SQL Server, które miały je wygenerować, a przerwa między nimi jest pojedynczym zapytaniem.

Często zadawane pytania

Jak wykonać zapytanie o metadane pliku za pomocą SQL? +
Zainstaluj agenta sieciowego Query Streams na komputerze, który widzi folder, dodaj System plików łącznik i podaj mu jedną lub więcej ścieżek głównych. Agent przegląda drzewo i udostępnia je jako tabele SQL: akta dla bieżącego stanu magazynowego, pliki_wydarzenia dla zmian, katalogi dla sum dla każdego folderu i kłęby Pojemność i wolne miejsce. Stamtąd to już zwykły SQL z kreatora zapytań, dodatku do arkusza kalkulacyjnego lub asystenta AI.
Czy odczytuje zawartość moich plików? +
Nie. Ten tryb zbiera tylko wpisy katalogowe i atrybuty plików — nazwy, rozmiary, daty, właścicieli, flagi atrybutów i strukturę folderów. Pliki nigdy nie są otwierane, analizowane ani kopiowane, dlatego uzasadnione jest wskazanie udziału prawnego, kadrowego lub finansowego. Jedynym wyjątkiem jest opcjonalne haszowanie zawartości, które przesyła plik strumieniowo w celu obliczenia skrótu SHA-256 i przechowuje tylko ten skrót. Haszowanie jest wyłączone, chyba że zostanie włączone.
Jak znaleźć duplikaty plików w udostępnionym pliku? +
Włącz haszowanie, a następnie grupuj akta przez haszysz i zachowaj grupy z więcej niż jednym wierszem. Ponieważ dopasowanie opiera się na treści, a nie na nazwie, kopie zapisane pod różnymi nazwami w różnych folderach nadal grupują się razem, a SUMA(rozmiar_bajtów) - MAX(rozmiar_bajtów) Informuje, ile miejsca marnuje każdy zestaw duplikatów. Tylko pliki mieszczące się w limicie rozmiaru skrótu — domyślnie 32 MB, z możliwością zwiększenia do 1 GB — posiadają skrót.
Czy mogę wygenerować raport wykorzystania dysku dla każdego folderu? +
Tak, i nie wymaga to żadnego zapytania rekurencyjnego. katalogi niesie stół bezpośrednie_bajty oraz bezpośrednia_liczba_plików dla plików znajdujących się bezpośrednio w każdym folderze oraz poddrzewo_bajtów oraz liczba_plików_poddrzewa dla folderu i wszystkiego, co się pod nim znajduje, zwiniętego podczas czyszczenia. Sortuj według poddrzewo_bajtów i filtruj głębokość aby uzyskać raport dotyczący magazynowania na dowolnym poziomie drzewa.
Co się dzieje po usunięciu pliku? +
A zniknął wiersz jest zapisywany do pliki_wydarzenia tak czy inaczej. W przypadku ustawień domyślnych upuszczać polityka wiersz pliku opuszcza wówczas inwentarz, więc akta odzwierciedla tylko to, co istnieje teraz. Przełącz na nagrobek i rząd pozostaje taki sam stan = 'zniknął' i jego ostatni znany rozmiar, daty i hash nienaruszone. akta filtry widoku wykluczają nagrobki, więc ich włączenie nie może zniekształcić istniejących raportów.
Czy mogę zamienić część nazwy pliku na kolumnę? +
Tak. Ustaw wzorzec analizy nazwy pliku, taki jak {raport}_{rok}_{miesiąc}_{region} a każdy token staje się prawdziwą kolumną akta, Więc sprzedaż_2026_08_EMEA.csv plony region = 'EMEA' Bez obsługi ciągów znaków w zapytaniu. W przypadku czegokolwiek, czego szablon nie może wyrazić, poprzedź wzorzec prefiksem wyrażenie regularne: i używają nazwanych grup. Struktura folderów działa w ten sam sposób, za pośrednictwem tokenów folderów, które nadają nazwy segmentom ścieżki poniżej katalogu głównego.
Co się dzieje z plikami, które nie spełniają zasad nazewnictwa? +
Nic nie ginie. Plik nadal otrzymuje pełny wiersz metadanych, kolumny tokenów są ustawione na null, a nazwa_parse_ok jest ustawiony na fałsz; naruszenie jest również zapisywane w dzienniku agenta, podając nazwę pliku i wzorzec. Zapytanie GDZIE NIE name_parse_ok Zwraca każdy plik, który nie spełnia konwencji, co samo w sobie jest użytecznym audytem. Nazwy tokenów, które duplikowałyby się nawzajem lub przesłaniały stałą kolumnę, są odrzucane podczas zapisywania łącznika, zamiast powodować późniejsze zaskoczenie.
Które foldery są pomijane automatycznie? +
moduły_węzłów, .git, $RECYCLE.BIN oraz Informacje o woluminie systemowym są zawsze wykluczane, a Twoje własne wzorce wykluczeń są do nich dodawane, zamiast je zastępować. Pliki ukryte i systemowe Czy uwzględnione, ponieważ inwentarz, który ich nie widzi, nie jest inwentarzem. Każdy pominięty folder nadal pojawia się w katalogi z powód_pominięcia, dzięki czemu krawędź skanu będzie widoczna w danych.
Czy stosuje skróty, dowiązania symboliczne i połączenia? +
Domyślnie nie. Punkty ponownej analizy — dowiązania symboliczne, połączenia i punkty montowania — są pomijane, co zapobiega przekształcaniu się łącza wskazującego na własny obiekt nadrzędny w nieskończoną pętlę i zapobiega cichemu podwajaniu skanowania przez łącze do innego udziału. followSymlinks opcja ta istnieje, jeśli Twoje drzewo faktycznie zależy od linków, i warto ją włączyć celowo, a nie domyślnie.
Ile plików może indeksować jeden łącznik? +
Domyślnie 100 000 plików i 8 poziomów folderów, z możliwością zwiększenia do 2 000 000 plików i 64 poziomów, w ramach budżetu czasu skanowania wynoszącego domyślnie 300 sekund i maksymalnie godzinę. Jeśli skanowanie przekroczy jeden z tych limitów, łącznik odrzuca go i nadaje mu nazwę, zamiast przechowywać częściowy inwentarz, który zaniżałby raportowanie każdego folderu poniżej punktu zatrzymania. Puste pole oznacza „użyj domyślnego”, a zero jest odrzucane całkowicie — żadne z nich nie oznacza „nieograniczonego”.
Którą wersję Agenta sieciowego potrzebuję? +
Łączniki zestawu plików wymagają Agent sieciowy 2.6 lub nowszy. Agenci aktualizują się automatycznie, więc istniejąca instalacja jest zazwyczaj aktualna. W przypadku nowej instalacji należy ją pobrać z strona pobierania i umieść go na maszynie, która ma dostęp do udziału.

Rozpocznij

Zmień swój serwer plików w inwentarz, który można przeszukiwać

Skieruj agenta na udział i odpowiedz na pytania dotyczące pamięci masowej, na które nikt nie ma dobrych narzędzi — wykorzystanie dysku przez foldery, nieaktualne pliki, duplikaty, dzienny przyrost i wolne miejsce. Tylko metadane: same pliki nigdy nie są otwierane.

Powiązane przewodniki: Jak wykonać zapytanie do folderu plików za pomocą SQL | Połącz wiele plików CSV w jedną tabelę | Pobierz agenta strumieni zapytań | Wszystkie przewodniki dotyczące łączników zestawów plików

Kategoria: Łączniki zestawów plików

Tagi: inwentaryzacja systemu plików, zapytanie o metadane pliku za pomocą SQL, raport o wykorzystaniu dysku, wyszukiwanie duplikatów plików, audyt plików, raport o przechowywaniu, łącznik zestawu plików

Metaopis: Indeksowanie systemu plików za pomocą SQL: wykorzystanie dysku, duplikaty, nieaktualne pliki i wzrost. Tylko metadane.

Zaktualizowano na sierpień 27, 2026

Powered by BetterDocs