2014-11-13 12 views
5

Używam funkcji json_extract_path_text do wyodrębniania wartości z JSON. Wraz ze wzrostem danych wierszy, wykonanie zapytania trwa długo i kończy się niepowodzeniem.Jak przyspieszyć zapytania Redshift

Czy istnieje sposób, aby skrócić czas wykonania zapytania lub poprawić josn_extract_path_text funkcję

+0

czy możesz dodać przykład? ogólnie wszystkie manipulacje tekstem powodują, że zapytania działają dłużej - ale pomocne może być zobaczenie zapytania – alexanderlz

Odpowiedz

1

Rozwiązaniem jest: przechowywanie danych w formie tabelarycznej zamiast JSON. JSON nie jest dobrym wyborem do przechowywania większych zestawów danych, ponieważ przechowując odmienne dane w jednej kolumnie, JSON nie wykorzystuje architektury kolumnowej Amazon Redshift. Lub alternatywnie zmienić typ węzła na większy.

-1

Redshift będący magazynem kolumnowym, przechowywanie danych w formacie JSON nie przyspieszyłoby kwerend na nim. To działałoby na bazie danych modelu NOSQL, ale nie na RedShift. Aby sprawić, by zapytania RedShift były efektywne, styl dystrybucji (nawet w przypadku scenariusza, w którym dane nie są zgodne lub dziwne) w tabelach jest ważny, w zależności od liczby posiadanych klastrów. Ponadto klucz Dystrybucja w kolumnie klucza podstawowego (w innym przypadku model RDBMS) i klucz sortowania na tym samym poziomie ułatwiłoby Ci dołączanie (przy użyciu łączenia Sortuj scalenie zamiast dłuższego przyłączenia skrótu).

Aby uzyskać więcej informacji na ten temat, zajrzyj do dokumentacji. RTFM jest tu twoim przyjacielem.