翻譯|使用教程|編輯:吉煒煒|2025-04-09 11:08:00.203|閱讀 122 次
概述:在本文中,我們將探討如何在FastReport .NET中配置與 Apache Ignite 的連接。您將學習通過代碼和報表設計器連接插件的必要步驟。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Apache Ignite 是一個分布式內存計算平臺,能夠在內存中處理和存儲大量數據,以實現高性能和可擴展性。
在本文中,我們將探討如何在FastReport .NET中配置與 Apache Ignite 的連接。您將學習通過代碼和報表設計器連接插件的必要步驟。遵循我們的建議,您將能夠有效地將 Apache Ignite 用作 FastReport .NET 中報表的數據源。
實現的連接 Apache Ignite 的插件是基于 Ignite.NET Thin Client 的輕量級解決方案。
Ignite 提供了兩種邏輯表示數據的方式:鍵值緩存和 SQL 表(模式)。盡管存在差異,但這些表示方式是等效的,并且可以反映相同的數據。
在 Ignite 中,SQL 表和鍵值緩存是表示相同內部數據結構的兩種等效方式。可以通過鍵值 API、SQL 運算符或兩者同時訪問數據。
緩存是鍵值對的集合,可通過鍵值 API 訪問。Ignite 中的 SQL 表類似于傳統數據庫管理系統中的表,但有一些額外的約束。例如,每個 SQL 表必須有一個主鍵。
具有主鍵的表可以表示為鍵值緩存,其中主鍵列充當鍵,表中的其他列是對象(值)的字段。
這兩種數據表示形式之間的主要區別在于訪問方式。使用鍵值緩存,您可以使用支持的編程語言處理對象。另一方面,SQL 表支持標準 SQL 語法,這在從現有數據庫遷移數據等情況下非常有用。
要使用該插件,您必須首先構建位于以下位置的項目: ..\Extras\Core\FastReport.Data\FastReport.Data.Ignite。之后,需要注冊該插件。注冊有兩種方式。
方法 1. 使用代碼。
復制以下代碼并將其粘貼到您的項目中。啟動應用程序時只需執行一次即可。
FastReport.Utils.RegisteredObjects.AddConnection(typeof(IgniteDataConnection));
方法二、使用報表設計器。
在設計器中連接連接器,在Ribbon界面中進入“File|Settings...”菜單(或在標準界面中進入“View|Settings...”菜單),在打開的窗口中選擇“Plugins”標簽,添加插件的內置.dll,如下圖所示。
添加插件后,需要重新啟動FastReport .NET設計器。
要創建與 Apache Ignite 的連接,請轉到“數據”菜單并選擇“添加數據源”。
在打開的窗口中,單擊“新建連接”按鈕,然后從連接類型的下拉列表中,選擇“Apache Ignite 連接”選項。在出現的窗口中,指定節點的地址以及用戶名和密碼(如果需要)。
如果連接成功,下一步將顯示上一步指定的節點所包含的表(緩存)列表:
該插件支持使用作為鍵值對和 SQL 表創建的緩存。
在 Apache Ignite 中創建和配置緩存的方法直接影響字段的組成和數據類型的表示。根據所選方法(例如,使用帶有 [QuerySqlField] 屬性的類、通過 QueryEntity 進行編程定義或使用動態數據),結果可能會有所不同。這涉及可用字段列表及其數據類型。
以下代碼示例將使用來自官方 Apache Ignite 功能示例的代碼片段。
讓我們打開下載的檔案并導航到以下文件夾:
..\apache-ignite-2.17.0-bin\platforms\dotnet\examples\Thin
從這些示例中,我們將使用自定義類 Organization,它表示組織的數據模型。此類包含以下屬性:
該類的完整代碼可以在以下文件夾中找到:
..\apache-ignite-2.17.0-bin\platforms\dotnet\examples\Shared\Models
QueryEntity 是一個 Apache Ignite 組件,它允許您以編程方式定義緩存的數據結構(模式)并手動指定字段及其類型。
對于帶有元數據的緩存(QueryEntity),支持檢索字段列表及其數據類型的操作。自定義數據類型按以下方式處理:
例如,如果在設置過程中創建緩存,如下所示:
var organizationCache = ignite.GetOrCreateCache<int, Organization>( new CacheClientConfiguration("dotnet_cache_query_organization", new QueryEntity(typeof(int), typeof(Organization))));
然后,當連接到 FastReport 中已準備好的 Apache Ignite 實例時,字段列表將僅包含來自 Organization 類的標有 [QuerySqlField]屬性的字段。
但是,查看數據時,將顯示緩存中的所有字段:
如果在設置過程中創建緩存時未使用QueryEntity,則所有字段的數據類型將被定義為字符串。示例代碼:
ICacheClient<int, Organization> cache = ignite.GetCache<int, Organization>("dotnet_cache_put_get");
在字段列表中,所有可用字段都會顯示,無論是否存在[QuerySqlField]屬性。這是創建緩存的第二種方法。
最后,讓我們考慮一下使用緩存的第三種方法。以下是創建緩存并將其填充為 SQL 表的示例:
cache.Query(new SqlFieldsQuery( "CREATE TABLE IF NOT EXISTS city (id LONG PRIMARY KEY, name VARCHAR) WITH \"template=replicated\"")).GetAll(); const string addCity = "INSERT INTO city (id, name) VALUES (?, ?)"; cache.Query(new SqlFieldsQuery(addCity, 1L, "Forest Hill")); cache.Query(new SqlFieldsQuery(addCity, 2L, "Denver")); cache.Query(new SqlFieldsQuery(addCity, 3L, "St. Petersburg"));
對于這樣的緩存,元數據(QueryEntity)包含有關每個字段的數據類型的信息。
在 Apache Ignite 緩存中,數據存儲時可能沒有明確定義的字段名稱。例如:
var cache = ignite.GetOrCreateCache<int, object>("put-get-example"); int key = 1; var val = new Address("1545 Jackson Street", 94612); cache.Put(key, val); int key1 = 2; var val1 = 942.28956; cache.Put(key1, val1); int key2 = 3; var val2 = "test String"; cache.Put(key2, val2);
當連接到 FastReport 中的 Apache Ignite 實例(使用上面示例中的代碼)時,您將看到以下結果。
在此示例中:
對于缺少名稱的字段,將生成唯一標識符。
我們已經介紹了如何在 FastReport .NET 中建立與 Apache Ignite 的連接。通過遵循概述的步驟,您將能夠集成這些系統并充分利用 Apache Ignite 作為報告的數據源。
Apache Ignite 提供快速的數據訪問和處理,而 FastReport .NET 則支持創建功能強大的報告。它們的集成為數據分析和可視化開辟了新的機會。
我們希望本文對您有所幫助,并幫助您在 FastReport .NET 項目中有效地使用 Apache Ignite。
_________________________________________________________
關于慧都科技:
慧都科技是專注軟件工程、智能制造、石油工程三大行業的數字化解決方案服務商。在軟件工程領域,我們提供開發控件、研發管理、代碼開發、部署運維等軟件開發全鏈路所需的產品,提供正版授權采購、技術選型、個性化維保等服務,幫助客戶實現技術合規、降本增效與風險可控。慧都科技是FastReports的在中國區的合作伙伴,FastReports作為圖表報表領域的優秀產品,幫助企業實現輕松構建高性能的表格及圖表。
下載或體驗FastReport產品,請咨詢,或撥打產品熱線:023-68661681
歡迎加入FastReport技術QQ群:1041260168,與更多小伙伴探討報表開發技能。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網