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