NIFI集群部署,非kerberos环境搭建,kerberos环境搭建

NIFI集群部署,非kerberos环境,依赖外部zookeeper.

环境规划

host-1  192.168.222.135   ZK   NIFI   
host-2  192.168.222.136   ZK   NIFI   
host-3  192.168.222.137   ZK   NIFI   
搭建时不要求与ZK共机,本次搭建资源有限,采取共机模式。

1、下载相关的安装包

官方网址:https://nifi.apache.org/download.html

wget --no-check-certificate https://dlcdn.apache.org/nifi/1.16.3/nifi-toolkit-1.16.3-bin.zip

wget --no-check-certificate  https://dlcdn.apache.org/nifi/1.16.3/nifi-1.16.3-bin.zip

2、集群搭建需要更改两个配置文件(使用外部zookeeper,3.5版本以上)每个节点都需修改。

更改 conf/nifi.properties 文件中的相关配置

###### #
# State Management
###### #
nifi.state.management.configuration.file=./conf/state-management.xml  
# The ID of the local state provider
nifi.state.management.provider.local=local-provider  #使用自带provider
# The ID of the cluster-wide state provider. This will be ignored if NiFi is not clustered but must be populated if running in a cluster.
nifi.state.management.provider.cluster=zk-provider  #使用zk进行cluster控制(还可以使用redis等
# Specifies whether or not this instance of NiFi should run an embedded ZooKeeper server
nifi.state.management.embedded.zookeeper.start=false  #使用内部zk(nifi自带zk,本次搭建使用外部的)
# Properties file that provides the ZooKeeper properties to use if <nifi.state.management.embedded.zookeeper.start> is set to true
nifi.state.management.embedded.zookeeper.properties=./conf/zookeeper.properties  #如果使用内部zk 该属性无效

# Site to Site properties
nifi.remote.input.host=
nifi.remote.input.secure=false #这表明该 NiFi 实例与远程 NiFi 实例之间的通信是否应该是安全的(即,安全的站点到站点)。默认情况下,它设置为true。这里我们关闭掉。
nifi.remote.input.socket.port=10443
nifi.remote.input.http.enabled=false #指定是否应在此主机上启用 HTTP 站点到站点。默认情况下,它设置为true。这里我们也关闭掉。
nifi.remote.input.http.transaction.ttl=30 sec
nifi.remote.contents.cache.expiration=30 secs

# web properties #
#############################################

# For security, NiFi will present the UI on 127.0.0.1 and only be accessible through this loopback interface.
# Be aware that changing these properties may affect how your instance can be accessed without any restriction.
# We recommend configuring HTTPS instead. The administrators guide provides instructions on how to do this.

nifi.web.http.host=192.168.222.135 # 非常重要,nifi的界面化控制ip地址,填对应节点的IP
nifi.web.http.port=8888 # 控制ip地址的端口
nifi.web.http.network.interface.default=

#############################################
这几个默认打开的  不用https  注释掉
#nifi.web.https.host=host-1
#nifi.web.https.port=9443
#nifi.web.https.network.interface.default=

# security properties #
nifi.sensitive.props.key=testpassword # 这是用于加密处理器中配置的任何敏感属性值的密码。默认情况下,它是空白的,但系统管理员应该为它提供一个值。它可以是任意长度的字符串,但建议的最小长度为 10 个字符。请注意,一旦设置了此密码并配置了一个或多个敏感处理器属性,则不应更改此密码。这里通过 执行 bin/nifi.sh set-sensitive-properties-key  testpassword 为其指定密码为testpasswd,可根据实际修改。
nifi.sensitive.props.key.protected=
nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
nifi.sensitive.props.additional.keys=

# cluster node properties (only configure for cluster nodes) #
nifi.cluster.is.node=true # 指定这个nifi节点是否是集群中的一员, 如false则单节点运行
nifi.cluster.node.address=192.168.222.135 # 与其他节点进行通讯的ip地址和端口,这里填对应节点的IP
nifi.cluster.node.protocol.port=11443 # 通讯的ip的端口
nifi.cluster.node.protocol.max.threads=50 # 使用多少个线程进行通讯,推荐节点数*2
nifi.cluster.node.event.history.size=25
nifi.cluster.node.connection.timeout=5 sec
nifi.cluster.node.read.timeout=5 sec
nifi.cluster.node.max.concurrent.requests=100
nifi.cluster.firewall.file=
nifi.cluster.flow.election.max.wait.time=20 secs # 选举等待时间
nifi.cluster.flow.election.max.candidates=1   # nifi中有选举员和老大,要选举的时候由选举员来统计票数,这个数值设定了需要多少个人来求出一个老大,配置1让nifi快速选举

# cluster load balancing properties #
nifi.cluster.load.balance.host=192.168.222.135 # 均衡的沟通ip端口,这里填对应节点的IP
nifi.cluster.load.balance.port=6342 # 端口
nifi.cluster.load.balance.connections.per.node=1 # 这个参数在数据量/文件个数多的时候配置大一点
nifi.cluster.load.balance.max.thread.count=8
nifi.cluster.load.balance.comms.timeout=30 sec

# zookeeper properties, used for cluster management #
nifi.zookeeper.connect.string=192.168.222.135:2181,192.168.222.136:2181,192.168.222.137:2181 #zk集群
nifi.zookeeper.connect.timeout=10 secs
nifi.zookeeper.session.timeout=10 secs
nifi.zookeeper.root.node=/nifi # zk上的注册的节点  同一个zk集群的同一个节点设定为同一个nifi集群
nifi.zookeeper.client.secure=false
nifi.zookeeper.security.keystore=
nifi.zookeeper.security.keystoreType=
nifi.zookeeper.security.keystorePasswd=
nifi.zookeeper.security.truststore=
nifi.zookeeper.security.truststoreType=
nifi.zookeeper.security.truststorePasswd=
nifi.zookeeper.jute.maxbuffer=

修改conf/state-management.xml

<cluster-provider>
    <id>zk-provider</id>
    <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
    <property name="Connect String">192.168.222.135:2181,192.168.222.136:2181,192.168.222.137:2181</property> #zk集群
    <property name="Root Node">/nifi</property> #zk注册节点
    <property name="Session Timeout">10 seconds</property>
    <property name="Access Control">Open</property>
</cluster-provider>

修改conf/bootstrap.conf

# JVM memory settings  默认1024 需要根据实际修改
java.arg.2=-Xms1024m
java.arg.3=-Xmx1024m

3、设置登录用户和密码

bin/nifi.sh set-single-user-credentials <username> <password>

4、启动nifi

每个节点依次执行 bin/nifi.sh start 启动,集群将选举产生主节点。NiFi 集群中的任一节点均可访问。后续可以用Nginx反向代理配置负载均衡,进行负载优化。

5、登录nifi

初次搭建登录时采用小节3所设置的用户名和密码,后续再次登录时无须输入密码,根据nifi自带算法自动生成密码登录。

6、conf/nifi.properties 配置文件中各配置参数的具体意思。

详见:https://nifi.apache.org/docs/nifi-docs/html/administration-guide.html#security_properties

NIFI集群部署,kerberos环境,依赖外部zookeeper.

环境规划

host-1  192.168.222.135   ZK   NIFI   kerberos-server   NIFI-toolkit
host-2  192.168.222.136   ZK   NIFI   kerberos-client
host-3  192.168.222.137   ZK   NIFI   kerberos-client
搭建时不要求与ZK、kerberos共机,本次搭建资源有限,采取共机模式。

1、下载相关的安装包

官方网址:https://nifi.apache.org/download.html

wget --no-check-certificate https://dlcdn.apache.org/nifi/1.16.3/nifi-toolkit-1.16.3-bin.zip

wget --no-check-certificate  https://dlcdn.apache.org/nifi/1.16.3/nifi-1.16.3-bin.zip

2、生成证书

为集群相关host[1-3]节点生成密钥库,truststore,nifi.properties以及具有给定DN的客户端证书。

进入配套的toolkit的bin 目录下执行命令
sh tls-toolkit.sh standalone -C 'CN=192.168.222.135, OU=NIFI' -n '192.168.222.135' --keyPassword hdoopnifi --keyStorePassword hdoopnifi --trustStorePassword hdoopnifi --subjectAlternativeNames '192.168.222.135,0.0.0.0' -o '../target'
其中 
-C,-clientcertDn生成适合在指定浏览器中使用的客户端证书。
-n,-hostnames要生成证书的主机名列表(以逗号分隔),可指定多次,支持范围和实例模式。
-c, -certificateAuthorityHostname 为Hostname of NiFi Certificate Authority。
-o, -outputDirectory 指定生成证书的路径
-subjectAlternativeNames 在证书中用作主题备用名称的域的逗号分隔列表。
!!注意:证书的生成是个简单又很容易犯错的步骤,这里总结一下本人在此遇到的一些坑。
(1)CN=192.168.222.135,OU=NIFI 这两个参数中,前面那个是你后续访问的链接地址,如何是域名访问则将主机IP改为对应的域名,并做好域名解析。后面那个基本不用更改照着来就可以。
(2)hdoopnifi是我个人指定的密码,这里是根据自己需要来修改,或者不定义这几个参数采用默认值。
(3)这里集群模式时一次指定一个机器IP或一个访问域名,切莫偷懒,指定的目录最后指定的目录也不要有变动,例如本次搭建我的集群有三个节点,则只需要修改命令中对应的主机IP后直接执行三次。如每次执行都更换一次指定目录时会导致后续集群内部通信出现认证问题。
执行完后会在target目录下根据我们指定的主机名列表或主机IP生成相关的配置文件和秘钥库,我们将其各主机名或IP下的相关文件分发到对应节点的nifi的安装目录的conf目录下,相同文件的选择覆盖。

在这里插入图片描述
3、配置相关kerberos服务主体的相关信息(这里采用已经搭建好的kerberos服务,关于kerberos可单独查看kerberos搭建部署的文档)

#在kerberos-server新增一个nifi/admin的服务主体
kadmin.local #连接kerberos数据库
addprinc -pw hadoop nifi/admin@HADOOP.CHINATELECOM.CN #新增一个指定密码为hadoop的服务主体
ktadd -k /opt/nifi-admin.keytab -norandkey nifi/admin@HADOOP.CHINATELECOM.CN #导出相关的服务主体的keytab到/opt目录下,因为在执行导出命令的时候会使得服务主体的密码发生改变,添加参数-norandkey可解决该问题。

#kerberos-client验证
kinit nifi/admin@HADOOP.CHINATELECOM.CN #zz执行命令
Password for nifi/admin@HADOOP.CHINATELECOM.CN:  #手动输入设置的密码hadoop
#无报错则表示验证没有问题。
#验证完毕后将kerberos-server的/etc/krb5.conf 和导出的服务主体keytab文件/opt/nifi-admin.keytab拷贝至节点的nifi的安装目录的conf目录下

4、kerberos集群搭建需要更改五个配置文件(使用外部zookeeper,3.5版本以上)每个节点都需修改。

更改 conf/nifi.properties 文件中的相关配置,这块和非kerberos环境不同

###### #
# State Management
###### #
nifi.state.management.configuration.file=./conf/state-management.xml  
# The ID of the local state provider
nifi.state.management.provider.local=local-provider  #使用自带provider
# The ID of the cluster-wide state provider. This will be ignored if NiFi is not clustered but must be populated if running in a cluster.
nifi.state.management.provider.cluster=zk-provider  #使用zk进行cluster控制(还可以使用redis等
# Specifies whether or not this instance of NiFi should run an embedded ZooKeeper server
nifi.state.management.embedded.zookeeper.start=false  #使用内部zk(nifi自带zk,本次搭建使用外部的)
# Properties file that provides the ZooKeeper properties to use if <nifi.state.management.embedded.zookeeper.start> is set to true
nifi.state.management.embedded.zookeeper.properties=./conf/zookeeper.properties  #如果使用内部zk 该属性无效

# Site to Site properties
nifi.remote.input.host=192.168.222.135
nifi.remote.input.secure=true #这表明该 NiFi 实例与远程 NiFi 实例之间的通信是否应该是安全的(即,安全的站点到站点)。默认情况下,它设置为true。
nifi.remote.input.socket.port=10443
nifi.remote.input.http.enabled=true #指定是否应在此主机上启用 HTTP 站点到站点。默认情况下,它设置为true。
nifi.remote.input.http.transaction.ttl=30 sec
nifi.remote.contents.cache.expiration=30 secs

# web properties #
#############################################

# For security, NiFi will present the UI on 127.0.0.1 and only be accessible through this loopback interface.
# Be aware that changing these properties may affect how your instance can be accessed without any restriction.
# We recommend configuring HTTPS instead. The administrators guide provides instructions on how to do this.
#这几个默认打开的,使用kerberos认证时必须使用https, 不能用http,这里注释掉
#nifi.web.http.host=
#nifi.web.http.port=
#nifi.web.http.network.interface.default=

#############################################
nifi.web.https.host=host-1  # 非常重要,nifi的界面化控制ip地址,填对应节点的IP
nifi.web.https.port=9443 # 控制ip地址的端口
nifi.web.https.network.interface.default=

# security properties #
nifi.sensitive.props.key=testpassword # 这是用于加密处理器中配置的任何敏感属性值的密码。默认情况下,它是空白的,但系统管理员应该为它提供一个值。它可以是任意长度的字符串,但建议的最小长度为 12 个字符。请注意,一旦设置了此密码并配置了一个或多个敏感处理器属性,则不应更改此密码。这里通过 执行 bin/nifi.sh set-sensitive-properties-key  testpassword 为其指定密码为testpasswd,可根据实际修改。
nifi.sensitive.props.key.protected=
nifi.sensitive.props.algorithm=NIFI_PBKDF2_AES_GCM_256
nifi.sensitive.props.additional.keys=

nifi.security.autoreload.enabled=false
nifi.security.autoreload.interval=10 secs
nifi.security.keystore=./conf/keystore.jks
nifi.security.keystoreType=jks
nifi.security.keystorePasswd=hdoopnifi
nifi.security.keyPasswd=hdoopnifi
nifi.security.truststore=./conf/truststore.jks
nifi.security.truststoreType=jks
nifi.security.truststorePasswd=hdoopnifi
nifi.security.user.authorizer=file-provider #用户登录采用文件方式
nifi.security.allow.anonymous.authentication=false
nifi.security.user.login.identity.provider=kerberos-provider #采用kerberos认证
nifi.security.user.jws.key.rotation.period=PT1H
nifi.security.ocsp.responder.url=
nifi.security.ocsp.responder.certificate=

# cluster common properties (all nodes must have same values) #
nifi.cluster.protocol.heartbeat.interval=5 sec
nifi.cluster.protocol.heartbeat.missable.max=8
nifi.cluster.protocol.is.secure=true #这里必须设置为true

# cluster node properties (only configure for cluster nodes) #
nifi.cluster.is.node=true # 指定这个nifi节点是否是集群中的一员, 如false则单节点运行
nifi.cluster.node.address=192.168.222.135 # 与其他节点进行通讯的ip地址和端口,这里填对应节点的IP
nifi.cluster.node.protocol.port=11443 # 通讯的ip的端口
nifi.cluster.node.protocol.max.threads=50 # 使用多少个线程进行通讯,推荐节点数*2
nifi.cluster.node.event.history.size=25
nifi.cluster.node.connection.timeout=5 sec
nifi.cluster.node.read.timeout=5 sec
nifi.cluster.node.max.concurrent.requests=100
nifi.cluster.firewall.file=
nifi.cluster.flow.election.max.wait.time=20 secs # 选举等待时间
nifi.cluster.flow.election.max.candidates=1   # nifi中有选举员和老大,要选举的时候由选举员来统计票数,这个数值设定了需要多少个人来求出一个老大,配置1让nifi快速选举

# cluster load balancing properties #
nifi.cluster.load.balance.host=192.168.222.135 # 均衡的沟通ip端口,这里填对应节点的IP
nifi.cluster.load.balance.port=6342 # 端口
nifi.cluster.load.balance.connections.per.node=1 # 这个参数在数据量/文件个数多的时候配置大一点
nifi.cluster.load.balance.max.thread.count=8
nifi.cluster.load.balance.comms.timeout=30 sec

# zookeeper properties, used for cluster management #
nifi.zookeeper.connect.string=192.168.222.135:2181,192.168.222.136:2181,192.168.222.137:2181 #zk集群
nifi.zookeeper.connect.timeout=10 secs
nifi.zookeeper.session.timeout=10 secs
nifi.zookeeper.root.node=/nifi # zk上的注册的节点  同一个zk集群的同一个节点设定为同一个nifi集群
nifi.zookeeper.client.secure=false
nifi.zookeeper.security.keystore=
nifi.zookeeper.security.keystoreType=
nifi.zookeeper.security.keystorePasswd=
nifi.zookeeper.security.truststore=
nifi.zookeeper.security.truststoreType=
nifi.zookeeper.security.truststorePasswd=
nifi.zookeeper.jute.maxbuffer=

# kerberos #
nifi.kerberos.krb5.file=/etc/krb5.conf #kerberos的配置文件,根据文件实际存在位置设定

# kerberos service principal 
nifi.kerberos.service.principal=nifi/admin@HADOOP.CHINATELECOM.CN #配置的服务主体
nifi.kerberos.service.keytab.location=/opt/nifi-admin.keytab  #配置的服务主体的keytab

修改conf/state-management.xml

<cluster-provider>
    <id>zk-provider</id>
    <class>org.apache.nifi.controller.state.providers.zookeeper.ZooKeeperStateProvider</class>
    <property name="Connect String">192.168.222.135:2181,192.168.222.136:2181,192.168.222.137:2181</property> #zk集群
    <property name="Root Node">/nifi</property> #zk注册节点
    <property name="Session Timeout">10 seconds</property>
    <property name="Access Control">Open</property>
</cluster-provider>

修改login-identity-providers.xml

#放开kerberos的配置
<provider>    
    <identifier>kerberos-provider</identifier>
    <class>org.apache.nifi.kerberos.KerberosProvider</class>
    <property name="Default Realm">HADOOP.CHINATELECOM.CN</property>#这里填写kerberos的Realm
    <property name="Authentication Expiration">12 hours</property>#这里是用户登录超12小时后必须重新登录
</provider>

修改authorizers.xml

#放开file-provider的配置项
<authorizer>
        <identifier>file-provider</identifier>
        <class>org.apache.nifi.authorization.FileAuthorizer</class>
        <property name="Authorizations File">./conf/authorizations.xml</property>
        <property name="Users File">./conf/users.xml</property>
        #页面登录用户也是整个nifi集群的管理用户需要带上主体信息
        <property name="Initial Admin Identity">nifi/fanzhu@HADOOP.CHINATELECOM.CN</property>
        <property name="Legacy Authorized Users File"></property>
        #这里填写生成证书时指定的CN和OU,这里需要注意这个空格的问题,生成证书的时候用空格的话这里填写的时候也需要有,生成证书的时候没有的话,这里也不要加,不然会报错,需要把集群中所有节点的信息全加进来,本次实验我这里只加了两个机器作为示例
        <property name="Node Identity 1">CN=192.168.222.135, OU=NIFI</property>
        <property name="Node Identity 2">CN=192.168.222.136, OU=NIFI</property>
</authorizer>
#同上一样进行修改
<userGroupProvider>    
    <identifier>file-user-group-provider</identifier>
    <class>org.apache.nifi.authorization.FileUserGroupProvider</class>
    <property name="Users File">./conf/users.xml</property>
    <property name="Legacy Authorized Users File"></property>

    <property name="Initial User Identity 0">nifi/fanzhu@HADOOP.CHINATELECOM.CN</property>
    <property name="Initial User Identity 1">CN=192.168.222.135, OU=NIFI</property>
    <property name="Initial User Identity 2">CN=192.168.222.136, OU=NIFI</property>
</userGroupProvider>

<accessPolicyProvider>
        <identifier>file-access-policy-provider</identifier>
        <class>org.apache.nifi.authorization.FileAccessPolicyProvider</class>
        <property name="User Group Provider">file-user-group-provider</property>
        <property name="Authorizations File">./conf/authorizations.xml</property>
        <property name="Initial Admin Identity">nifi/fanzhu@HADOOP.CHINATELECOM.CN</property>
        <property name="Legacy Authorized Users File"></property>
        <property name="Node Identity 1">CN=192.168.222.135, OU=NIFI</property>
        <property name="Node Identity 2">CN=192.168.222.136, OU=NIFI</property>
        <property name="Node Group"></property>
</accessPolicyProvider>

修改conf/bootstrap.conf

# JVM memory settings  默认1024 需要根据实际修改
java.arg.2=-Xms1024m
java.arg.3=-Xmx1024m

5、登录

完成各个节点的配置后依次启动nifi后就可以去页面访问登录了,登录的用户名为在kerberos时设置的nifi/admin

密码为hadoop,登录后页面有相应的用户名显示和用户配置则为配置成功。
在这里插入图片描述
在这里插入图片描述

6、遇到问题

本人在搭建过程遇到了以下两个报错,第一个是登录页面时报错,第二个是往集群中加其他机器时报错,造成这两个问题的根本原因均是证书配置有误导致,可见nifi官方的证书配置或参考第二节相关内容重新进行证书的配置和生成。除此以外,请切记每次修改完nifi.properties文件时请删除flow.json.gzflow.xml.gz两个文件让其启动的时候重新生成,每次修改完authorizers.xml文件请删除authorizations.xmlusers.xml两个文件让其启动的时候重新生成。如何没有删除相关的文件时可能会导致参数修改不生效。

在这里插入图片描述
在这里插入图片描述
7、本人在生产环境所用的服务器性能是内存:384G CPU:96 存储:12*16T,对此进行了以下相关参数的调优,可供参考。

# JVM memory settings  默认1024 需要根据实际修改
java.arg.2=-Xms1024m
java.arg.3=-Xmx1024m


nifi.flow.configuration.archive.enabled=true
nifi.content.claim.max.appendable.size=50 MB
nifi.cluster.node.protocol.max.threads=200
nifi.provenance.repository.max.storage.size=100 GB
nifi.provenance.repository.max.storage.time=4 days
nifi.provenance.repository.rollover.time=5 mins
nifi.provenance.repository.rollover.size=300 MB
nifi.provenance.repository.index.shard.size=2 GB
nifi.bored.yield.duration=30 millis
nifi.content.repository.archive.max.usage.percentage=75%

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是数据仓库搭建的实例步骤及相关技术: 1. 确定需求: - 确定数据仓库的目标和业务需求。 - 定义需要存储和分析的数据范围和类型。 - 确定数据的来源和采集方式。 2. 数据抽取与清洗: - 使用ETL工具(如Talend、Informatica、DataStage等)或自定义脚本从数据源中抽取数据。 - 对抽取的数据进行清洗、转换和校验,以确保数据的准确性和一致性。 - 可以使用工具如Apache Nifi、Pentaho Kettle等进行数据流的处理和转换。 3. 数据存储: - 选择合适的数据存储技术,如关系型数据库(如Oracle、SQL Server、MySQL等)、NoSQL数据库(如MongoDB、Cassandra等)、分布式存储系统(如Hadoop、Spark等)等。 - 设计和创建数据库表结构,包括维度表和事实表。 - 可以使用列式存储(如Apache Parquet、Apache ORC)来提高查询性能。 4. 数据集成与转换: - 将不同数据源中的数据进行整合和转换,以满足数据仓库的一致性和统一性要求。 - 使用ETL工具或自定义脚本进行数据集成和转换的任务。 - 可以使用工具如Apache Kafka、Apache Flume等进行数据流的集成和传输。 5. 数据加载: - 将经过清洗和转换的数据加载到数据仓库中。 - 可以使用批量加载(如SQL导入、批量插入等)或实时加载(如流式数据处理)的方式进行数据加载。 - 使用工具如Apache Sqoop、Apache NiFi等进行数据加载和传输。 6. 数据建模: - 设计和构建数据仓库的物理模型和逻辑模型。 - 创建维度表和事实表,建立表之间的关系。 - 使用工具如ERwin、PowerDesigner等进行数据建模。 7. 数据安全与权限控制: - 设计和实施数据安全策略,包括数据加密、访问控制、身份验证等。 - 根据用户需求和角色划分,设置合适的权限控制,以保护敏感数据的安全。 - 使用工具如Kerberos、LDAP等进行身份验证和权限管理。 8. 数据质量管理: - 监控和管理数据质量,包括数据完整性、准确性、一致性等方面。 - 使用数据质量工具进行数据质量评估和监控,及时发现和处理数据质量问题。 - 使用工具如Trifacta、Talend Data Quality等进行数据质量管理。 9. 数据分析和报表: - 利用数据仓库中的数据进行分析和报表生成。 - 使用商业智能工具(如Tableau、Power BI、QlikView等)进行数据分析和可视化。 - 编写SQL查询或使用工具提供的查询功能,获取所需的数据。 10. 持续优化和维护: - 定期对数据仓库进行性能优化和调整,包括索引优化、查询优化、存储优化等。 - 根据业务需求和数据变化情况,对数据仓库进行持续的维护和更新。 - 使用工具如Apache Hadoop、Apache Spark等进行大数据处理和分析。 以上是一个典型的数据仓库搭建的实例步骤及相关技术,具体的实施过程中还需要根据实际情况来进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值