首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用set_fact和with_together?

set_fact和with_together是Ansible中的两个关键字,用于在Playbook中进行变量的定义和处理。

  1. set_fact:set_fact关键字用于在Playbook中定义变量。它可以将一个值赋给一个变量,并且可以在后续的任务中使用该变量。set_fact的语法如下:- set_fact: my_variable: value其中,my_variable是要定义的变量名,value是要赋给变量的值。set_fact可以在Playbook的任何位置使用,但是变量的作用域仅限于当前的Play。
  2. with_together:with_together关键字用于将多个列表中的元素进行配对,然后将配对后的元素作为变量传递给后续的任务。with_together的语法如下:- name: Example using with_together with_together: - list1 - list2 loop_control: loop_var: item debug: msg: "Item 1: {{ item.0 }}, Item 2: {{ item.1 }}"其中,list1和list2是要配对的两个列表,item.0和item.1分别表示配对后的第一个元素和第二个元素。在后续的任务中,可以使用这些变量进行处理。

使用set_fact和with_together的一个示例是将两个列表中的元素进行配对,并输出配对后的结果:

代码语言:txt
复制
- name: Example using set_fact and with_together
  hosts: localhost
  gather_facts: false
  vars:
    list1:
      - item1
      - item2
      - item3
    list2:
      - value1
      - value2
      - value3
  tasks:
    - set_fact:
        paired_items: "{{ paired_items|default([]) + [item] }}"
      with_together:
        - "{{ list1 }}"
        - "{{ list2 }}"
      loop_control:
        loop_var: item
    - debug:
        msg: "Item 1: {{ item.0 }}, Item 2: {{ item.1 }}"
      with_items: "{{ paired_items }}"

在上述示例中,我们定义了两个列表list1和list2,并使用set_fact和with_together将它们进行配对,然后将配对后的结果存储在变量paired_items中。最后,使用debug模块输出配对后的结果。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 维度模型数据仓库(二十) —— 累积的度量

    (五)进阶技术         15. 累积的度量         本篇说明如何实现累积月底金额,并对数据仓库模式和初始装载、定期装载脚本做相应地修改。累积度量是半可加的,而且它的初始装载比前面做的要复杂的多。         可加、半可加、不可加事实         事实表中的数字度量可划分为三类。最灵活、最有用的度量是完全可加的,可加性度量可以按照与事实表关联的任意维度汇总。半可加度量可以对某些维度汇总,但不能对所有维度汇总。差额是常见的半可加度量,除了时间维度外,它们可以跨所有维度进行加法操作。另外,一些度量是完全不可加的,例如比率。         修改模式         建立一个新叫做month_end_balance_fact的事实表,用来存储销售订单金额的月底累积值。month_end_balance_fact表在模式中构成了另一个星型模式。新的星型模式除了包括这个新的事实表,还包括两个其它星型模式中已有的维度表,即product_dim和month_dim。图(五)- 15-1显示了新的模式。注意这里只显示了相关的表。

    02

    维度模型数据仓库(十三) —— 退化维度

    (五)进阶技术         8. 退化维度         本篇讨论一种称为退化维度的技术。该技术减少维度的数量,简化维度数据仓库的模式。简单的模式比复杂的更容易理解,也有更好的查询性能。当一个维度没有数据仓库需要的任何数据时就可以退化此维度。需要把退化维度的相关数据迁移到事实表中,然后删除退化的维度。         退化订单维度         本节说明如何退化订单维度,包括对数据仓库模式和定期装载脚本的修改。使用维度退化技术时你首先要做的识别数据,分析从来不用的数据列。例如,订单维度的order_number列就可能是这样的一列。但如果用户想看事务的细节,还需要订单号。因此,在退化订单维度前,要把订单号迁移到sales_order_fact表。图(五)- 8-1显示了迁移后的模式。

    02

    基于Hadoop生态圈的数据仓库实践 —— 进阶技术(九)

    九、退化维度 本节讨论一种称为退化维度的技术。该技术减少维度的数量,简化维度数据仓库模式。简单的模式比复杂的更容易理解,也有更好的查询性能。当一个维度没有数据仓库需要的任何数据时就可以退化此维度,此时需要把退化维度的相关数据迁移到事实表中,然后删除退化的维度。 1. 退化订单维度 本小节说明如何退化订单维度,包括对数据仓库模式和定期装载脚本的修改。使用维度退化技术时你首先要识别数据,分析从来不用的数据列。例如,订单维度的order_number列就可能是这样的一列。但如果用户想看事务的细节,还需要订单号。因此,在退化订单维度前,要把订单号迁移到sales_order_fact表。下图显示了迁移后的模式。

    02

    维度模型数据仓库(十八) —— 迟到的事实

    (五)进阶技术         13. 迟到的事实         装载日期在生效日期后的事实就是迟到的事实。晚于订单日期进入源数据的销售订单可以看做是一个迟到事实的例子。销售订单被装载进其事实表时,装载的日期晚于销售订单的订单日期,因此是一个迟到的事实。(因为定期装载的是前一天的数据,所以这里的晚于指的是晚2天及其以上。)         迟到事实影响周期快照事实表的装载,如(五)进阶技术5. “快照”中讨论的month_end_sales_order_fact表。比方说,2015年3月的销售订单金额月底快照已经计算并存储在month_end_sales_order_fact表中,这时一个迟到的订单在3月10日被装载,那么2015年3月的快照金额必须因迟到事实而重新计算。         处理迟到事实         本节说明当导入month_end_sales_order_fact表时如何处理迟到的销售订单。    为了知道一个销售订单是否是迟到的,需要把销售订单数据源的登记日期装载进sales_order_fact表。由于现在还没有登记日期列,你需要在事实表上添加此列。使用维度角色扮演技术添加登记日期。因此,在销售订单事实表里添加名为entry_date_sk的日期代理键列,并且从日期维度表创建一个叫做entry_date_dim的数据库视图。清单(五)-13-1里的脚本创建entry_date_dim视图和销售订单事实表里的entry_date_sk代理键列。

    03

    维度模型数据仓库(十七) —— 无事实的事实表

    (五)进阶技术         12. 无事实的事实表         本篇讨论一种技术,用来处理源数据中没有度量的需求。例如,产品源数据不包含产品数量信息,如果系统需要得到产品的数量,很显然不能简单地从数据仓库中直接得到。这时就要用到无事实的事实表技术。使用此技术可以通过持续跟踪产品的发布来计算产品的数量。可以创建一个只有产品(计什么数)和日期(什么时候计数)维度代理键的事实表。之所以叫做无事实的事实表是因为表本身并没有度量。         产品发布的无事实事实表  本节说明如何实现一个产品发布的无事实事实表,包括新增和初始装载product_count_fact表。图(五)- 12-1显示了跟踪产品发布数量的数据仓库模式(只显示与product_count_fact表有关的表)。

    01

    基于Hadoop生态圈的数据仓库实践 —— 进阶技术

    五、快照 前面实验说明了处理维度的扩展。本节讨论两种事实表的扩展技术。 有些用户,尤其是管理者,经常要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种常用的事实表扩展技术。 周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照汇总每个月底时总的销售订单金额。 累积快照用于跟踪事实表的变化。例如,数据仓库可能需要累积(存储)销售订单从下订单的时间开始,到订单中的商品被打包、运输和到达的各阶段的时间点数据来跟踪订单生命周期的进展情况。用户可能要取得在某个给定时间点,销售订单处理状态的累积快照。 下面说明周期快照和累积快照的细节问题。 1. 周期快照 下面以销售订单的月底汇总为例说明如何实现一个周期快照。 首先需要添加一个新的事实表。下图中的模式显示了一个名为month_end_sales_order_fact的新事实表。

    02

    基于Hadoop生态圈的数据仓库实践 —— 进阶技术(五)

    五、快照         前面实验说明了处理维度的扩展。本节讨论两种事实表的扩展技术。         有些用户,尤其是管理者,经常要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种常用的事实表扩展技术。         周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照汇总每个月底时总的销售订单金额。         累积快照用于跟踪事实表的变化。例如,数据仓库可能需要累积(存储)销售订单从下订单的时间开始,到订单中的商品被打包、运输和到达的各阶段的时间点数据来跟踪订单生命周期的进展情况。用户可能要取得在某个给定时间点,销售订单处理状态的累积快照。         下面说明周期快照和累积快照的细节问题。 1. 周期快照         下面以销售订单的月底汇总为例说明如何实现一个周期快照。         首先需要添加一个新的事实表。下图中的模式显示了一个名为month_end_sales_order_fact的新事实表。

    02

    维度模型数据仓库(十) —— 快照

    (五)进阶技术         5. 快照         前面实验说明了处理维度的扩展。本篇讨论两种事实表的扩展技术。         有些用户,尤其是管理者,经常会要看某个特定时间点的数据。也就是说,他们需要数据的快照。周期快照和累积快照是两种处理事实表扩展的技术。         周期快照是在一个给定的时间对事实表进行一段时期的总计。例如,一个月销售订单周期快照是每个月底时总的销售订单金额。         累积快照用于跟踪事实表的变化。例如,数据仓库可能需要累积(存储)销售订单从下订单的时间开始,到订单中的商品被出库、运输和到达的各阶段的时间点数据来跟踪订单生命周期的进展情况。用户可能要取得在某个给定时间点,销售订单处理状态的累积快照。         下面说明周期快照和累积快照的细节问题。         周期快照         本节以销售订单的月底汇总为例说明如何实现一个周期快照。         首先需要添加一个新的事实表。图(五)- 5-1中的模式显示了一个名为month_end_sales_order_fact的新事实表。该表中有两个度量值,month_order_amount和month_order_quantity,这两个值是不能加到sales_order_fact表中的。不能加到sales_order_fact表中的原因是,sales_order_fact表和新的度量值有不同的时间属性(数据的粒度不同)。sales_order_fact表包含的是每天一条记录。新的度量值要的是每月的数据。使用清单(五)- 5-1里的脚本建立month_end_sales_order_fact表

    01
    领券