如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

使用 F# Azure Storage Type Provider 探索 Azure

  • 2016-05-17
  • 本文字数:1397 字

    阅读完需:约 5 分钟

Azure Storage Type Provider 提供对 Azure 存储数据资源的静态类型访问: BLOB 以及队列。项目的维护者Isaac Abraham 最近和大家交流了如何使用type provider和这些数据资源交互

对于所有数据资源来说,对type provider 的设置都是相同的:

复制代码
open FSharp.Azure.StorageTypeProvider
// Connect to a live account using a two-part name and key.
type Storage = AzureTypeProvider<"name", "key">

Blob

Azure Blob storage 是将文件数据存储在云端的一项服务。storage type provider 通过下面的示例提供对容器和文件的静态类型访问:

复制代码
let container = Storage.Containers.samples
let theBlob = container.``folder/``.``childFile.txt``
printfn "Blob '%s' is %d bytes big." theBlob.Name theBlob.Size
let totalSize =
[ container.``file1.txt``
container.``file2.txt``
container.``file3.txt``
container.``sample.txt`` ]
|> List.sumBy(fun blob -> blob.Size)
printfn "These files take up %d bytes." totalSize


Azure Table storage 将 NoSQL 键值存储托管于 Azure 上。NoSQL 数据库是无模式的,表的行不需要包含相同属性。Azure Table storage 支持在有限范围内的查询,可以通过查询键或者属性来得到相对应的行。它实现了OData 协议,这对查询非常重要。

storage type provider 可以提供基础的 CRUD 操作,对管理数据很有必要。有几种办法进行查询,以下的例子是一个简单的键查询:

复制代码
let employeeTable = Storage.Tables.employee
let firstEmployee = employeeTable.Get(Row "1", Partition "women")
let allWomen = employeeTable.GetPartition("women")

type provider 提供了 IQueryable 实现来满足属性查询。然而,由于 Azure Table 支持的查询操作受限,这个解决方案也是有限制的。一种可能的选择是使用 type provider 自动生成的条件:

复制代码
let longerQuery = employeeTable.Query()
.``Where Years Working Is``.``Greater Than``(14)
.``Where Name Is``.``Equal To``(“Fred”)
.``Where Is Manager Is``.True()

队列
Azure Queue storage 是消息服务,基于 REST 方式访问。Queue storage 还支持管理异步任务和搭建过程工作流。

相比较于一个传统的队列 API,type provider 并没有太多优势,它不能提供模式或是拓展查询。然而,它为开发和调试提供了几个功能。使用 F# Interactive 就可以直接从 IDE 实现查询。

复制代码
let queue = Azure.Queues.``sample-queue``
async {
printfn "Enqueuing a message!"
do! queue.Enqueue("Hello from Azure Type Provider")
printfn "Queue length is %d." (queue.GetCurrentLength())
// Get the message back off the queue
let dequeuedMessage = (queue.Dequeue() |> Async.RunSynchronously).Value
printfn "%A" dequeuedMessage
printfn "Deleting the message."
do! queue.DeleteMessage dequeuedMessage.Id
printfn "Queue length is %d." (queue.GetCurrentLength())
} |> Async.RunSynchronously

Azure Storage Type Provider 是一个开源的项目,可以在GitHub 上获得。

查看英文原文 Exploring Azure with F# Azure Storage Type Provider


感谢张龙对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-05-17 19:001407
用户头像

发布了 218 篇内容, 共 77.6 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

哈尔滨等保、备案单位如何选择备案地?

黑龙江陆陆信息测评部

1688API接口终极宝典:列表、详情全掌握,图片搜索攻略助你一臂之力

tbapi

1688商品详情接口 1688商品数据接口 1688API 1688图片搜索接口

【AI智能助手】轻松打造智能助手,定制专属个性风格

JEECG低代码

AI大模型 AI应用 AIGC AI智能助手

中国电信重塑天翼AI云手机,为用户开启云端智能新生活

极客天地

内网im聊天软件,私有化部署安全可控

BeeWorks

即时通讯 IM 私有化部署

“全球金牌敏捷课程” · 7月19-20日CSM认证课程 · Jim老师引导讨论AI & Agility话题

ShineScrum

敏捷 敏捷教练 CSM认证 CSM认证培训 敏捷认证

0.4元/TB/月!天翼云HBlock打响软件定义存储价格战

天翼云开发者社区

存储 天翼云HBlock

“最近我给有代码洁癖的同事墙裂安利了通义灵码”

阿里巴巴云原生

TiDB 中新 Hash Join 的设计与性能优化

TiDB 社区干货传送门

区块链RWA软件系统技术方案

北京木奇移动技术有限公司

区块链技术 软件外包公司 RWA开发

什么是零信任

天翼云开发者社区

零信任 SDP架构

AI大模型入门 三:5分钟速成Prompt公式,让AI生成代码的通过率从30%到90%

测试人

人工智能

MCP与华为云CSE珠联璧合,打造AI时代微服务生态引擎

华为云开发者联盟

微服务 华为云开发者联盟 MCP 华为云CSE

WebGIS项目开发技术方案

北京木奇移动技术有限公司

软件外包公司 webGIS开发 webgl开发公司

让用户反馈成为产品迭代的动力源泉

Feedalyze

效率工具 产品经理 产品迭代 用户反馈 用户需求

网站进行IPv6改造的步骤有哪些?一文看懂

防火墙后吃泡面

WebGL软件开发的技术方案

北京木奇移动技术有限公司

软件外包公司 webgl开发 webgl技术

用户实测YRCloudFile KVCache丨以存代算显著提升AI推理性价比

焱融科技

AI推理 大型语言模型LLM KVCache

向日葵、ToDesk、网易UU远程、RayLink,哪款远控软件最适合设计师?

科技热闻

深化合作!港华集团数智升级,构建一体化管控平台

用友BIP

针对大事务问题对业务存储过程改造

GreatSQL

特权账号:企业安全的关键要素与防护策略

天翼云开发者社区

安全 特权账号

CST如何生成简单通用的IBIS模型文件

思茂信息

cst CST软件 CST Studio Suite

局域网聊天工具,哪款更适合政企的即时通讯需求?

BeeWorks

即时通讯 IM 私有化部署 局域网

区块链RWA系统开发框架

北京木奇移动技术有限公司

区块链技术 软件外包公司 RWA开发

Blender 入门教程(四):动画制作

北桥苏

游戏引擎 blender CocosCreator

葵花药业集团与用友战略签约,共启医药行业数智化新篇章

用友BIP

区块链ETF软件系统的技术方案

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

办公网络流量隔离:为高效办公保驾护航

天翼云开发者社区

安全 网络

1688 商品数据接口终极指南:Python 开发者如何高效获取标题 / 价格 / 销量数据(附调试工具推荐)

tbapi

1688商品列表接口 1688API 1688商品数据采集

TiDB 替换 HBase 全场景实践指南 ——从架构革新到业务赋能

TiDB 社区干货传送门

TiDB第四届征文-业务场景实战

使用F# Azure Storage Type Provider探索Azure_.NET_Pierre-Luc Maheu_InfoQ精选文章