![]() So far I’ve come to realize It’s a very unique problem. to keep up with related blogs and decisions. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elasticsearch. Kibana is a snap to setup and start using. If I want to have a website that shows player data or an auction house or even sell cosmetic items, and the game tooling does not support that, the only way is to query and insert data directly to the database.Īnd then, there’s the fact that most of those games are built in completely different ways, so this has to be configurable by whoever is administrating the server. Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Most of the time, those kinda games have tools that are closed source (except for some rare exceptions where the game is extendable to the core - looking at your Minecraft).īecause of that, we only have access to the database as an extension point. This way, any player that bought the game can enter the official server or my custom server. So I could, for example, host the game with my own set of rules (which I modified from the game tools). Have you heard of a game called Legends of Aria? If not, the thing you should know is that this game allows creators to build their own rules on top of the base game. I’m gonna give you a hypothetical (but realistic) scenario: It’s not about removing complexity per se, it’s about extending something that can’t be extended by the ordinary means. ![]() I’m curious about the exact sort of users you’re envisioning for this there’s a very narrow window of skill between “can understand a schema with hundreds of tables well enough to query it” and “can write SQL”, and the abstraction you’ve described doesn’t remove very much complexity. I also tried running raw queries and setting SQL variables as an extension point but I lose a bit of composability and SQL variables have their own set of limitations. I also tested storing the queries directly to the database and just including filters, but the fragment function does not play nice with only string params (SQL injection reasons). Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. One of the things I’m doing to prevent creating a lot of atoms is to limit the number of columns the user can specify, but I’m not completely happy with the solution so far because it is a very poor workaround. ![]() ![]() Where: fragment("? in (?)", field(a, ^username_column), ^username_list), # Convert some of the string values before passing to the query (account_columns, username_column) Most of this configuration is saved as ‘string’ and Ecto, as far as my research went, only accepts ‘atom’ fields, so this requires me to at least convert these strings to atoms on the fly (which I discovered is not recommended).Ī simple example would be retrieving a player from a table and only returning specific columns: # Configs retrieved from the databaseĪccount_columns = "id, player_name, registration_date" One of the problems I’m facing right now is coming up with a good strategy to allow the administrators of the server to configure how queries are done against their database and successfully building those queries.Ĭurrently, I’m storing configuration on a table as key/value pairs, and the user can set, for instance, the name of specific tables to be retrieved, primary keys (for cross-referencing) and which fields of a given table can be selected (like player rankings, etc). I have two repositories configured for my application, one that I have control over the schema and the other which I don’t and need to query based on certain conditions. So, usually, there’s already a database setup in place for those game servers (MySQL 90% of the times) and my application’s database only stores configurations, logs, table references, etc. I’m creating an application for game servers that can interact with the game’s database and enhance the administration experience for community managers. Well, I already spent a good amount of time researching and testing some solutions and I’d like to see if anyone would like to leave a suggestion on other ways to solve this before I make it final. The repository interface from spring data is: import .repository.Hello everyone! How are you? (I hope you are all fine despite the current situation) Private String = FieldType.Long, name = "phoneNumber") Public ClientEntity() String = FieldType.Text, name = "name") I was trying to do a CRUD application using Spring Boot with ElasticSearch database. I am new on ElasticSearch, and I would like to have a Spring Boot Application that connects to a database ElasticSearch 8.6, in order to do CRUD operations over an index.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |