2015-04-18 17 views
5

Właśnie przesłałam moją bazę danych do Google Cloud SQL, ale jak stwierdzono w FAQ on Google Cloud SQL, mówi ona, że ​​funkcje zdefiniowane przez użytkownika nie są obsługiwane. Używam funkcji o nazwie Levenshtein, zaczerpniętej z tego stackoverflow article, aby wykonać wyszukiwanie w słowniku, który utworzyłem w mojej bazie danych. Jest to funkcja, która może znaleźć słowa, które wyglądają podobnie (w tym błędy pisowni) i zwraca odległość od danego słowa.Alternatywa dla funkcji zdefiniowanych przez użytkownika w Google Cloud SQL

Czy Google oferuje jakiekolwiek alternatywy dla funkcji zdefiniowanych przez użytkownika, które umożliwiłyby mi korzystanie z tej funkcji podczas wyszukiwania?

+1

Nie, nie ma. Jednak możesz użyć gce i tam użyć dowolnej bazy danych, którą chcesz. –

+0

Tak, CloudSQL jest w istocie piaskownicowym MySQL, więc proste uruchomienie MySQL (lub innego DB) na instancji Compute Engine może być najlepszym rozwiązaniem. – Adam

+0

jest kulą, której Google nie obsługuje, jedną z przyczyn, dla których mogłabym rozważyć infrastrukturę opartą na chmurze, byłaby możliwość migracji bazy danych do CloudSQL w celu wykorzystania mocy, wydajności i skalowalności, więc opieram moją aplikację na UDF i zapisuję procedury. – neavilag

Odpowiedz

7

Jesteś zagubiony terminologii:

  • User Defined Function = funkcji określonej w rzeczywistym kodzie, skompilowany do DLL/SO, a utworzony w MySQL z CREATE FUNCTION ... SONAME. W Cloud SQL nie jest to możliwe.

  • procedury przechowywanej = funkcji określonej w SQL, a utworzony w MySQL z CREATE FUNCTION routine_body lub CREATE PROCEDURE. Jest to dozwolone w Cloud SQL.

Właśnie przetestowane przez skopiowanie i wklejenie definition from that SO post do mojego instancji Chmura SQL i to działało idealnie.

+0

Uzgodnione. Miałem na myśli zapisaną procedurę. Przetestowałem kod z artykułu SO i dało to kilka błędów SQL, ale jednak utworzył funkcję. Dzięki za pomoc! –