跳至頁尾內容
.NET 幫助

Azure Tables(開發人員的工作原理)

在廣闊的雲端運算領域,資料儲存在塑造現代應用程式的架構和可擴展性方面發揮關鍵作用。 Azure 表格式儲存體是由 Microsoft Azure 提供的完全託管的 NoSQL 資料存儲,為開發人員提供了在雲端儲存結構化資料的多功能解決方案。 讓我們一起踏上探索 Azure 表格式儲存體的功能、用例和優勢的旅程。

了解 Azure 表格式儲存

Azure 表格式儲存體是一種基於雲端的 NoSQL 資料庫服務,可提供無架構的結構化資料儲存。 Azure 表提供基於鍵值對的資料模型,其中每個實體都由分區鍵和行鍵唯一識別。 這種設計能夠有效地查詢和檢索數據,使其成為需要快速存取大型數據集的場景的理想選擇。

如果您正在考慮使用 Azure 表格式儲存裝置還是關聯式資料庫來管理結構化數據,Azure 資料表儲存能夠處理大型資料集並與 Azure 生態系統集成,這使得 Azure 表格儲存成為開發人員工具包中非常實用的工具。

主要特性和功能

1.無架構設計:與傳統的關聯式資料庫不同,Azure 表儲存不對資料強制執行架構。 這種靈活性允許開發人員在同一張表中儲存具有不同結構的實體,從而促進敏捷開發並適應不斷變化的資料需求。

2.可擴充性和效能: Azure 表格式儲存體專為可擴充性而設計,能夠輕鬆處理大量資料。 它能夠自動擴展以適應不斷增長的工作負載,並提供可預測的效能,使其適用於高吞吐量應用程式和需要低延遲資料存取的場景。

3.分區和負載平衡: Azure 表格儲存中的資料根據分割鍵進行分區,從而可以有效地將資料分佈到多個儲存節點上。 這種分區策略能夠實現水平擴展和負載平衡,從而確保最佳效能和資源利用率。

4.二級索引:雖然 Azure 表格儲存體主要使用分割區鍵和行鍵進行資料檢索,但它也支援透過使用複合鍵和查詢投影來建立二級索引。 此功能使開發人員能夠執行高效的範圍查詢並根據輔助屬性篩選數據,從而增強數據存取模式的靈活性。

5.與 Azure 生態系統整合: Azure 表格儲存體可與其他 Azure 服務(如 Azure Functions、Azure Cosmos DB 和 Azure Logic Apps)無縫集成,使開發人員能夠輕鬆建置端到端解決方案。 無論是使用無伺服器函數處理資料流,還是使用進階分析工具分析數據,Azure 表儲存都是建立可擴展、高彈性應用程式的基礎元件。

用例

Azure 表格式儲存體可滿足各行各業的廣泛使用場景,包括:

1.物聯網 (IoT): Azure 表格式儲存體非常適合儲存來自 IoT 裝置的遙測數據,從而實現即時數據攝取、分析和視覺化。 其可擴展性和高效能使其成為處理物聯網部署產生的大量資料的理想選擇。

2.內容管理:對於需要結構化儲存內容元資料的應用程序,例如部落格、文章和用戶生成的內容,Azure 表儲存提供了一種經濟高效且可擴展的解決方案。 它採用無模式設計,允許靈活的模式演化,以適應內容結構隨時間的變化。

3.會話狀態管理: Azure 表格儲存體可用於儲存 Web 應用程式的會話狀態數據,提供分散式和可擴充的會話管理解決方案。 透過將會話狀態卸載到 Azure 表存儲,開發人員可以在負載平衡環境中實現更高的可擴展性、容錯性和會話親緣性。

4.分散式系統:在分散式系統架構中,Azure 表存儲作為基礎資料存儲,用於維護組件之間的共享狀態和協調。 其分區和可擴展性特性使其非常適合需要分散式快取、配置管理以及微服務之間協調的場景。

IronPDF簡介

Azure 表格(開發人員的工作原理):圖 1

IronPDF是一個 C# PDF 庫,允許在 .NET 專案中產生、管理和提取 PDF 文件中的內容。 以下是一些主要特點:

  1. HTML 轉 PDF:
    • 將 HTML、CSS 和 JavaScript 內容轉換為 PDF 文件。
    • 用於產生像素級完美 PDF 的 Chrome 渲染引擎。
    • 以 URL、HTML 檔案或 HTML 字串為輸入產生 PDF 檔案。

2.圖片和內容轉換:

  • 將影像轉換為 PDF 格式,反之亦然。
  • 從現有PDF文件中提取文字和圖像。
  • 支援多種影像格式,如 JPG、PNG 等。

3.編輯和篡改:

  • 設定 PDF 的屬性、安全性和權限。
  • 新增數位簽章。
  • 編輯元資料和修訂歷史。

4.跨平台支援:

  • 可與 .NET Core(8、7、6、5 和 3.1+)、.NET Standard(2.0+)和 .NET Framework(4.6.2+)搭配使用。
  • 相容於 Windows、Linux 和 macOS。
  • 可透過 NuGet 輕鬆安裝。

使用 IronPDF 和 Azure Tables 產生 PDF 文檔

首先,使用 Visual Studio 建立一個控制台應用程式,如下所示:

Azure 表格(開發人員的工作原理):圖 2

請提供項目名稱:

Azure 表格(開發人員的工作原理):圖 3

請提供.NET版本:

Azure 表格(開發人員的工作原理):圖 4

從 NuGet 套件管理器安裝IronPDF套件:

Azure 表格(開發人員的工作原理):圖 5

要存取 Azure Tables 庫,我們將使用名為 Azure.Data.Tables 的 Azure Tables 用戶端程式庫,該程式庫可以在 NuGet 套件管理器中找到。 Azure 表服務用戶端提供與 Azure 表格儲存體互動的功能。

Azure 表格(開發人員的工作原理):圖 6

建立 Azure 儲存帳戶即可開始使用 Azure 表格:

Azure 表格(開發人員的工作原理):圖 7

點擊審核並建立。 將以下程式碼輸入到您的程式中,即可使用 Azure Tables 產生 PDF 文件。

using Azure;
using Azure.Data.Tables;
using Azure.Data.Tables.Models;
using IronPdf;
using System;
using System.Linq;
using System.Threading.Tasks;

namespace CodeSample
{
    public static class AzureTableDemo
    {
        public static async Task Execute()
        {
            var tableName = "IronDemo";
            var connectionString = "DefaultEndpointsProtocol=https;AccountName=irondemo;AccountKey=9Pe6LJlkjA721VgWvSuRCMk+WJR5/kFoyPtR1ewjRsNbGJNJOmWYhCB32fakANmWeAcfyIg++iHl+AStDNYlGw==;EndpointSuffix=core.windows.net";
            Console.WriteLine("Demo IronPDF with Azure.Data.Tables");

            // Enable web security for PDF rendering
            Installation.EnableWebSecurity = true;

            // Instantiate PDF renderer
            var renderer = new ChromePdfRenderer();

            // HTML content for the PDF
            var content = "<h1>Demo IronPDF with Azure.Data.Tables</h1>";

            // Create a TableServiceClient using the connection string
            content += "<h2>Create TableServiceClient</h2>";
            var serviceClient = new TableServiceClient(connectionString);
            content += "<p>var serviceClient = new TableServiceClient(connectionString);</p>";

            // Create the table if it does not exist
            content += "<h2>Create Table</h2>";
            TableItem table = await serviceClient.CreateTableIfNotExistsAsync(tableName);
            Console.WriteLine($"Created table: {table.Name}.");
            content += $"<p>Created table: {table.Name}.</p>";

            // Placeholder for delete table logic
            content += "<h2>Deletes If Required</h2>";
            // serviceClient.DeleteTable(tableName);
            content += "<p>serviceClient.DeleteTable(tableName);</p>";

            // Get a client reference to interact with the table
            content += "<h2>Get Table Client</h2>";
            var tableClient = serviceClient.GetTableClient(tableName);
            content += "<p>var tableClient = serviceClient.GetTableClient(tableName);</p>";

            // Define and add a new entity to the table
            content += "<h2>Add Table Entity</h2>";
            var tableEntity = new TableEntity { { "Book", "Awesome IronPDF Package" }, { "Price", 5.00 }, { "Quantity", 21 } };
            tableEntity.PartitionKey = tableEntity["Book"].ToString();
            tableEntity.RowKey = tableEntity["Price"].ToString();
            content += "<p>new TableEntity() { { \"Book\", \"Awesome IronPDF Package\" }, { \"Price\", 5.00 }, { \"Quantity\", 21 } }</p>";

            content += $"<p>tableEntity.PartitionKey = {tableEntity["Book"]}</p>";
            content += $"<p>tableEntity.RowKey = {tableEntity["Price"]}</p>";

            Console.WriteLine($"{tableEntity.RowKey}: {tableEntity["Book"]} costs ${tableEntity.GetDouble("Price")}.");
            content += $"<p>{tableEntity.RowKey}: {tableEntity["Book"]} costs ${tableEntity.GetDouble("Price")}</p>";

            // Add the entity to the table
            tableClient.AddEntity(tableEntity);
            content += "<p>Entity added.</p>";

            // Query the table
            content += "<h2>Query Table</h2>";
            Pageable<TableEntity> queryResultsFilter = tableClient.Query<TableEntity>(filter: $"PartitionKey eq '{tableEntity.PartitionKey}'");
            content += "<p>Using tableClient.Query<TableEntity></p>";

            // Iterate and display queried entities
            foreach (TableEntity qEntity in queryResultsFilter)
            {
                content += $"<p>{qEntity.GetString("Book")}: {qEntity.GetDouble("Price")}</p>";
                Console.WriteLine($"{qEntity.GetString("Book")}: {qEntity.GetDouble("Price")}");
            }
            Console.WriteLine($"The query returned {queryResultsFilter.Count()} entities.");
            content += $"<p>The query returned {queryResultsFilter.Count()} entities.</p>";

            // Render HTML content as PDF
            var pdf = renderer.RenderHtmlAsPdf(content);

            // Save the PDF to a file
            pdf.SaveAs("AwesomeAzureDataTables.pdf");
        }
    }
}
using Azure;
using Azure.Data.Tables;
using Azure.Data.Tables.Models;
using IronPdf;
using System;
using System.Linq;
using System.Threading.Tasks;

namespace CodeSample
{
    public static class AzureTableDemo
    {
        public static async Task Execute()
        {
            var tableName = "IronDemo";
            var connectionString = "DefaultEndpointsProtocol=https;AccountName=irondemo;AccountKey=9Pe6LJlkjA721VgWvSuRCMk+WJR5/kFoyPtR1ewjRsNbGJNJOmWYhCB32fakANmWeAcfyIg++iHl+AStDNYlGw==;EndpointSuffix=core.windows.net";
            Console.WriteLine("Demo IronPDF with Azure.Data.Tables");

            // Enable web security for PDF rendering
            Installation.EnableWebSecurity = true;

            // Instantiate PDF renderer
            var renderer = new ChromePdfRenderer();

            // HTML content for the PDF
            var content = "<h1>Demo IronPDF with Azure.Data.Tables</h1>";

            // Create a TableServiceClient using the connection string
            content += "<h2>Create TableServiceClient</h2>";
            var serviceClient = new TableServiceClient(connectionString);
            content += "<p>var serviceClient = new TableServiceClient(connectionString);</p>";

            // Create the table if it does not exist
            content += "<h2>Create Table</h2>";
            TableItem table = await serviceClient.CreateTableIfNotExistsAsync(tableName);
            Console.WriteLine($"Created table: {table.Name}.");
            content += $"<p>Created table: {table.Name}.</p>";

            // Placeholder for delete table logic
            content += "<h2>Deletes If Required</h2>";
            // serviceClient.DeleteTable(tableName);
            content += "<p>serviceClient.DeleteTable(tableName);</p>";

            // Get a client reference to interact with the table
            content += "<h2>Get Table Client</h2>";
            var tableClient = serviceClient.GetTableClient(tableName);
            content += "<p>var tableClient = serviceClient.GetTableClient(tableName);</p>";

            // Define and add a new entity to the table
            content += "<h2>Add Table Entity</h2>";
            var tableEntity = new TableEntity { { "Book", "Awesome IronPDF Package" }, { "Price", 5.00 }, { "Quantity", 21 } };
            tableEntity.PartitionKey = tableEntity["Book"].ToString();
            tableEntity.RowKey = tableEntity["Price"].ToString();
            content += "<p>new TableEntity() { { \"Book\", \"Awesome IronPDF Package\" }, { \"Price\", 5.00 }, { \"Quantity\", 21 } }</p>";

            content += $"<p>tableEntity.PartitionKey = {tableEntity["Book"]}</p>";
            content += $"<p>tableEntity.RowKey = {tableEntity["Price"]}</p>";

            Console.WriteLine($"{tableEntity.RowKey}: {tableEntity["Book"]} costs ${tableEntity.GetDouble("Price")}.");
            content += $"<p>{tableEntity.RowKey}: {tableEntity["Book"]} costs ${tableEntity.GetDouble("Price")}</p>";

            // Add the entity to the table
            tableClient.AddEntity(tableEntity);
            content += "<p>Entity added.</p>";

            // Query the table
            content += "<h2>Query Table</h2>";
            Pageable<TableEntity> queryResultsFilter = tableClient.Query<TableEntity>(filter: $"PartitionKey eq '{tableEntity.PartitionKey}'");
            content += "<p>Using tableClient.Query<TableEntity></p>";

            // Iterate and display queried entities
            foreach (TableEntity qEntity in queryResultsFilter)
            {
                content += $"<p>{qEntity.GetString("Book")}: {qEntity.GetDouble("Price")}</p>";
                Console.WriteLine($"{qEntity.GetString("Book")}: {qEntity.GetDouble("Price")}");
            }
            Console.WriteLine($"The query returned {queryResultsFilter.Count()} entities.");
            content += $"<p>The query returned {queryResultsFilter.Count()} entities.</p>";

            // Render HTML content as PDF
            var pdf = renderer.RenderHtmlAsPdf(content);

            // Save the PDF to a file
            pdf.SaveAs("AwesomeAzureDataTables.pdf");
        }
    }
}
$vbLabelText   $csharpLabel

程式碼解釋

該程式碼示範如何與 Azure 表儲存互動並使用 IronPDF 產生 PDF:

  1. Azure 表格式儲存互動:
    • 它使用 Azure SDK for .NET (Azure.Data.Tables) 連接到 Azure 表格式儲存體。 然後檢查名為"IronDemo"的表是否存在; 否則,它會自行創建。
    • 在表格中新增一個實體(類似資料庫行),指定"書籍"、"價格"和"數量"等屬性。
    • 根據篩選條件查詢表以檢索實體。

2.使用 IronPDF 產生 PDF:

  • 使用 IronPDF 的 ChromePdfRenderer 將 HTML 內容渲染成 PDF 檔案。
  • 從包含 Azure 表格式儲存操作詳細資訊的動態 HTML 內容產生 PDF。

Azure 表格(開發人員的工作原理):圖 8

IronPDF 許可

IronPDF軟體包需要許可證才能運作。 在應用程式啟動時,在存取包之前,請新增以下程式碼。

IronPdf.License.LicenseKey = "IRONPDF-KEY";
IronPdf.License.LicenseKey = "IRONPDF-KEY";
$vbLabelText   $csharpLabel

試用許可證可在此處取得。

結論

Azure 表格式儲存體體現了微軟致力於為開發者提供可擴展、靈活且經濟高效的雲端資料儲存解決方案的承諾。 Azure 表格式儲存體採用無模式設計、橫向可擴展性,並與 Azure 生態系統無縫集成,使開發人員能夠建立彈性敏捷的應用程序,以適應現代業務環境的動態需求。

無論是管理物聯網資料流、儲存內容元數據,或是編排分散式系統,Azure 表儲存都提供了一個多功能的平台,可以充分發揮雲端原生應用程式的潛力。 隨著各組織不斷推動數位轉型計畫並遷移到雲端,Azure 表格儲存仍然是現代資料儲存架構的基石,推動創新並使企業能夠在日益數據驅動的世界中蓬勃發展。

IronPDF是一個 .NET 程式庫,用於以程式設計方式建立和操作 PDF 文件。 它允許開發人員將 HTML、ASPX 頁面、圖像和文字轉換為 PDF 文件。 主要功能包括 HTML 轉 PDF、PDF 編輯功能以及對各種 .NET 環境的支持,使其成為在 .NET 應用程式中產生和處理 PDF 文件的多功能工具。

常見問題解答

如何使用 C# 將 HTML 內容轉換為 PDF?

您可以使用 IronPDF 庫在 C# 中將 HTML 內容轉換為 PDF。該程式庫提供了諸如RenderHtmlAsPdf之類的方法,可以將 HTML 字串或檔案轉換為 PDF 文件。

分割區在 Azure 表格式儲存體中扮演什麼角色?

Azure 表格式儲存體中的分割功能有助於將資料分散到不同的節點上,從而增強負載平衡和可擴充性。它使用分區鍵來有效率地管理整個儲存叢集中的資料。

我能否將 Azure 表格式儲存體與 C# PDF 庫整合以產生文件?

是的,您可以將 Azure 表格儲存體與 IronPDF 等 C# PDF 庫集成,以產生文件。此整合可讓您從 Azure 表格式儲存體中取得數據,並使用 IronPDF 將其渲染為 PDF 格式。

在雲端資料庫中使用無模式儲存有哪些好處?

Azure 表格式儲存提供的無模式存儲,為資料設計提供了彈性。它允許在同一張表中使用不同的資料結構,從而有助於敏捷開發並適應不斷演變的資料模型。

Azure 表格式儲存體如何支援 IoT 資料管理?

Azure 表格式儲存體透過為遙測資料提供可擴充且高效的存儲,支援 IoT 資料管理。其無模式設計和可擴展性使其成為管理海量 IoT 資料的理想選擇。

在生產環境中使用 C# PDF 庫是否需要許可證?

是的,在生產環境中使用像 IronPDF 這樣的 C# PDF 庫需要獲得許可。我們提供試用許可供您評估,以便開發人員在購買前體驗其功能。

Azure 表格式儲存如何確保高效率的資料查詢?

Azure 表格式儲存採用鍵值對模型,包含分區鍵和行鍵,從而優化了資料查詢和檢索。這種設計能夠有效率地存取大型資料集。

Azure 表格式儲存有哪些常見應用場景?

Azure 表格式儲存的常見應用包括儲存內容管理的元資料、管理 Web 應用程式中的會話狀態以及協調分散式系統中的共用狀態。

Jacob Mellor,Team Iron 首席技術官
首席技術長

Jacob Mellor 是 Iron Software 的首席技術官,也是一位富有遠見的工程師,率先開發了 C# PDF 技術。作為 Iron Software 核心程式碼庫的最初開發者,他自公司成立之初便參與塑造了其產品架構,並與執行長 Cameron Rimington 一起將其發展成為一家擁有 50 多名員工、服務於 NASA、特斯拉和全球政府機構的公司。

Jacob 於 1998 年至 2001 年在曼徹斯特大學獲得土木工程一級榮譽學士學位。 1999 年,他在倫敦創辦了自己的第一家軟體公司;2005 年,他創建了自己的第一個 .NET 元件。此後,他專注於解決微軟生態系統中的複雜問題。

他的旗艦產品 IronPDF 和 IronSuite .NET 庫在全球 NuGet 上的安裝量已超過 3000 萬次,其基礎程式碼持續為全球開發者工具提供支援。憑藉 25 年的商業經驗和 41 年的程式設計專長,Jacob 始終致力於推動企業級 C#、Java 和 Python PDF 技術的創新,同時指導下一代技術領導者。