2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

使用 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:001436
用户头像

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

关注

评论

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

LazyLLM教程 | 第3讲:大模型怎么玩:用LazyLLM带你理解调用逻辑与Prompt魔法!

商汤万象开发者

天猫商品详情API响应数据解析

tbapi

天猫商品详情接口 天猫API 天猫数据采集 天猫商品详情api

教师如何规划教学与科研协同发展|北京理工大学医工交叉教学实践分享(5)

ModelWhale

AI教育 科研 北京理工大学

三天接入,零重构:低代码中间件的快速集成机制全解析

星云低代码中间件

ide 低代码 企业应用 可视化编程

Mysql如何迁移数据库数据

秃头小帅oi

JNPF 6.0 +AI,低代码开发新体验

引迈信息

从v3.1到v4.3,OceanBase稳定支撑快手PB级核心业务场景

老纪的技术唠嗑局

运维 数据库设计 OceanBase 社区版 mysql'

03.接口vs抽象类比较

杨充

从《中国开源年度报告》看中国开源力量的十年变迁中,Apache SeaTunnel 的跃迁

白鲸开源

大数据 开源 Apache SeaTunnel Apache软件基金会 OpenRank

Apache Flink:从实时数据分析到实时AI

Apache Flink

flink AI 实时计算

深入底层:如何优雅部署 SeaTunnel 分离集群到 Kubernetes

白鲸开源

大数据 开源 Kubernetes 部署 Apache SeaTunnel

WAIC2025 | 澳鹏(中国)精彩亮相2025世界人工智能大会

澳鹏Appen

世界人工智能大会 WAIC WAIC2025

利用NLU标签优化ASR重评分模型

qife122

语音识别 自然语言理解

浙大“卓越中心”发布两项成果突破,为航空航天科学计算注入新动能

极客天地

LAS平台Vibe Data Processing:AI驱动的数据处理新范式

字节跳动数据平台

大数据 数据处理 多模态数据湖

Apache DolphinScheduler DataX 数据集成:新手入门全攻略

白鲸开源

大数据 Apache DolphinScheduler 数据集成 DataX 数据调度

镜舟科技受邀出席开源赋能金融创新论坛,共同推动金融行业开源技术规范发展

镜舟科技

金融创新 分析型数据库 开源治理 镜舟科技 MPP 架构

使用 Apache DolphinScheduler 构建和部署大数据平台,将任务提交至 AWS 的实践经验

白鲸开源

云计算 AWS Apache DolphinScheduler 思科 EKS

星云低代码:低代码不再是平台,而是“中间件”

星云低代码中间件

低代码 中间件 企业应用 可视化开发

品牌出海的隐形风险:海外舆情监测你真的会用吗?

沃观Wovision

数据分析 出海企业 沃观Wovision 舆情监测系统

校招新人如何用文心快码让Landing期不再尴尬

Comate编码助手

职场新人 AI辅助编程 AI 代码助手 文心快码

技术文档 | 使用 Pulsar Functions 构建实时 AI Pipeline

AscentStream

Machine Learning pulsar

[鸿蒙征文]钢琴和弦小工具

大展红图

鸿蒙 音乐 HarmonyOS HarmonyOS NEXT 钢琴

这个仓库堪称造轮子的鼻祖,建议看看!

Immerse

从数据感知到精准决策:舆情监测的全流程价值解析

沃观Wovision

舆情监测 沃观Wovision 舆情监测系统

硅空位中心实现量子网络化的新突破

qife122

量子技术 硅空位中心

日均处理 PB 级数据,基于 DolphinScheduler 的离线数据治理平台实现精准血缘追踪

白鲸开源

大数据 开源 数据治理 Apache DolphinScheduler 血缘分析

程序员专属秋日养生指南(Coding版),文内有秋天第一杯奶茶

Comate编码助手

程序员 文心快码 秋天的第一杯奶茶 程序员养生

中国 Apache 项目 OpenRank 排行榜 Top 20:白鲸开源深度参与两大上榜项目

白鲸开源

开源 Apache DolphinScheduler Apache SeaTunnel 白鲸开源 Apache软件基金会

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