スキップしてメイン コンテンツに移動

米国の固定ブロードバンド接続について: 2020年6月30日現在 FCC統計

前回に引き続き、2020年6月30日現在の、FCCによる米国の固定ブロードバンド接続統計データの簡易分析です。今回はDataBaseにWindows上のoracle 19c、問い合わせクライアントにSQL Developerを使ってみました。
まず、データを取得します。今回は、こちらからダウンロードし、解凍しました。データサイズは以前より少し増えて11GB程です。
つづいて、フィールドがどうなっているか、WSL2/Debianで確認したところ、前回と同じでした。
$ head -n1 fbd_us_with_satellite_jun2020_v1.csv
LogRecNo,Provider_Id,FRN,ProviderName,DBAName,HoldingCompanyName,HocoNum,HocoFinal,StateAbbr,BlockCode,TechCode,Consumer,MaxAdDown,MaxAdUp,Business
つづいて、Oracle19c上でDBを新規作成します。なお、Oracle 19cは、C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_homeに解凍し、Databaseは、C:\Users\YourID\Oracle\以下にインストールしました。また、インスタンスを追加し、追加したインスタンスに本DBを作成するようにしています。

0. フォルダーとinit.oraを作成

mkdir C:\Users\YourID\Oracle\oradata\USBB
mkdir C:\Users\YourID\Oracle\oradata\USBB\orclpdb
mkdir C:\Users\YourID\Oracle\oradata\USBB\pdbseed
mkdir C:\Users\YourID\Oracle\recovery_area\USBB

==============================================================================
notepad "C:\Users\YourID\Oracle\admin\usbb\pfile\initUSBB.ora"
==============================================================================
##############################################################################
# Copyright (c) 1991, 2013 by Oracle Corporation
##############################################################################
 
###########################################
# NLS
###########################################
nls_language="JAPANESE"
nls_territory="JAPAN"
 
###########################################
# SGA Memory
###########################################
sga_target=9474m
 
###########################################
# Miscellaneous
###########################################
compatible=19.0.0
diagnostic_dest=C:\Users\YourID\Oracle
enable_pluggable_database=true
 
###########################################
# Cursors and Library Cache
###########################################
open_cursors=300
 
###########################################
# Cache and I/O
###########################################
db_block_size=8192
 
###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_tablespace=UNDOTBS_1
 
###########################################
# Security and Auditing
###########################################
audit_file_dest="C:\Users\YourID\Oracle\admin\usbb\adump"
audit_trail=db
remote_login_passwordfile=EXCLUSIVE
 
###########################################
# Sort, Hash Joins, Bitmap Indexes
###########################################
pga_aggregate_target=3158m
 
###########################################
# Database Identification
###########################################
db_name="usbb"
 
###########################################
# Network Registration
###########################################
local_listener=LISTENER_USBB
 
###########################################
# File Configuration
###########################################
control_files=("C:\Users\YourID\Oracle\oradata\USBB\control01.ctl", "C:\Users\YourID\Oracle\recovery_area\USBB\control02.ctl")
db_recovery_file_dest="C:\Users\YourID\Oracle\recovery_area"
db_recovery_file_dest_size=12732m
 
###########################################
# Processes and Sessions
###########################################
processes=480
 
###########################################
# Shared Server
###########################################
dispatchers="(PROTOCOL=TCP) (SERVICE=orclXDB)"

###########################################
# Plugable Database
###########################################
ENABLE_PLUGGABLE_DATABASE=TRUE
==============================================================================


1-1. 管理者権限でインスタンスを新規作成

cmd

set ORACLE_SID=USBB
oradim -NEW -SID USBB -STARTMODE AUTO -PFILE "C:\Users\YourID\Oracle\admin\usbb\pfile\initUSBB.ora"

1-2. パスワードファイルの作成
cd C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\database
orapwd file=PWDusbb.ora password=PassW0rd format=12

2. sqlplus にて接続し、データベースを作成

cmd

#エラーメッセージをUSで出力する場合
set NLS_LANG=American_America.JA16SJIS

set ORACLE_SID=USBB

sqlplus /nolog

SQL> connect sys as sysdba

SQL> startup nomount pfile="C:\Users\YourID\Oracle\admin\usbb\pfile\initUSBB.ora"

SQL> CREATE DATABASE USBB
LOGFILE GROUP 1 ('C:\Users\YourID\Oracle\oradata\USBB\REDO01.log') SIZE 256M,
		GROUP 2 ('C:\Users\YourID\Oracle\oradata\USBB\REDO02.log') SIZE 256M,
        GROUP 3 ('C:\Users\YourID\Oracle\oradata\USBB\REDO03.log') SIZE 256M
DATAFILE 'C:\Users\YourID\Oracle\oradata\USBB\SYSTEM01.dbf'
		SIZE 20000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
SYSAUX DATAFILE 'C:\Users\YourID\Oracle\oradata\USBB\SYSAUX01.dbf'
		SIZE 2000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE TEMP01
  TEMPFILE 'C:\Users\YourID\Oracle\oradata\USBB\TEMP01.dbf'
  		SIZE 2000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
UNDO TABLESPACE UNDOTBS_1
  DATAFILE 'C:\Users\YourID\Oracle\oradata\USBB\UNDOTBS01.dbf'
  		SIZE 2000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
CHARACTER SET AL32UTF8
ENABLE PLUGGABLE DATABASE
SEED FILE_NAME_CONVERT=('C:\Users\YourID\Oracle\oradata\USBB\','C:\Users\YourID\Oracle\oradata\USBB\pdbseed\')
        SYSTEM DATAFILES SIZE 1000M AUTOEXTEND ON MAXSIZE UNLIMITED
        SYSAUX DATAFILES SIZE 1000M AUTOEXTEND ON MAXSIZE UNLIMITED
LOCAL UNDO ON
SET TIME_ZONE='Asia/Tokyo';

SQL> shutdown

3. spfileの作成とstartup

SQL> create spfile='C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\database\SPFILEUSBB.ORA' from pfile='C:\Users\YourID\Oracle\admin\usbb\pfile\initUSBB.ora';

SQL> startup

4. lisnter.ora, tnsnames.oraの編集とtnsリスナの再起動

tnsnames.ora
===========================================
# tnsnames.ora Network Configuration File: C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1521))
  )

LISTENER_USBB =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1522))
  )

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = orcl)
    )
  )

USBB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = usbb)
    )
  )

===========================================
listner.ora
===========================================
# listener.ora Network Configuration File: C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\bin\oraclr19.dll")
    )
    (SID_DESC =
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (SID_NAME = usbb)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1522))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = I44)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
===========================================

lsnrctl stop
lsnrctl start

# cdbの構成
cmd
set Path=C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home\perl\bin;%Path%
set ORACLE_SID=USBB
set ORACLE_HOME=C:\Users\YourID\Downloads\WINDOWS.X64_193000_db_home
mkdir C:\Temp

sqlplus sys as sysdba

SQL> @?\rdbms\admin\catcdb.sql

SQL> host perl -I &&rdbms_admin &&rdbms_admin_catcdb --logDirectory &&1 --logFilename &&2

1に値を入力してください: C:\Temp
2に値を入力してください: create_cdb.log
Enter new password for SYS: PassW0rd
Enter new password for SYSTEM: PassW0rd
Enter temporary tablespace name: TEMP

SQL> @?/rdbms/admin/catalog.sql
SQL> @?/rdbms/admin/catproc.sql
SQL> @?/rdbms/admin/utlrp.sql
SQL> @?/sqlplus/admin/help/hlpbld.sql HELPUS.SQL

SQL> exit

sqlplus system as sysdba
SQL> @?/sqlplus/admin/pupbld.sql

exit

ORADIM -EDIT -SID usbb -STARTMODE AUTO -SRVCSTART SYSTEM

sqlplus system as sysdba

SQL> alter system set local_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=I44)(PORT=1522))';
SQL> alter system register;

SQL> exit


# pdbの作成
sqlplus system as sysdba

SQL> create pluggable database usbbpdb admin user usbb identified by "PassW0rd"
  file_name_convert = (
    'C:\USERS\YourID\ORACLE\ORADATA\USBB\PDBSEED\',
    'C:\USERS\YourID\ORACLE\ORADATA\USBB\USBBPDB\');

SQL> alter pluggable database USBBPDB open;

SQL> exit

sqlplus / as sysdba
SQL> select name, open_mode from v$pdbs;
SQL> ALTER SESSION SET CONTAINER = usbbpdb;
SQL> SHOW CON_NAME
SQL> CREATE USER usbb IDENTIFIED BY PassW0rd;
SQL> GRANT DBA, CONNECT , RESOURCE TO usbb;
SQL> exit
以上で、インスタンスUSBBにPlugable Database usbbpdbを作成し、ユーザ usbbを追加できました。
次に、テーブルを作成し、データをcsvファイルからインポートします。
sqlplus usbb/PassW0rd@192.168.255.44:1522/usbbpdb

CREATE TABLESPACE USBBPDB01
	DATAFILE 'C:\USERS\YourID\ORACLE\ORADATA\USBB\USBBPDB\USBBPDB01.dbf' 
	SIZE 20000M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

CREATE TABLE jun2020
(
 LogRecNo VARCHAR2(2000) NOT NULL,
 Provider_Id VARCHAR2(2000),
 FRN VARCHAR2(2000),
 ProviderName VARCHAR2(2000),
 DBAName VARCHAR2(2000),
 HoldingCompanyName VARCHAR2(2000),
 HocoNum VARCHAR2(2000),
 HocoFinal VARCHAR2(2000),
 StateAbbr VARCHAR2(100),
 BlockCode VARCHAR2(200),
 TechCode VARCHAR2(200),
 Consumer VARCHAR2(200),
 MaxAdDown VARCHAR2(100),
 MaxAdUp VARCHAR2(100),
 Business VARCHAR2(100),
 MaxCIRDown VARCHAR2(100),
 MaxCIRUp VARCHAR2(100),
 CONSTRAINT jun2020pk PRIMARY KEY (LogRecNo)
)
TABLESPACE USBBPDB01; 

exit

cd C:\Users\YourID\Downloads\US-Fixed-with-Satellite-Jun2020
notepad jun2020.ctl
=================================
OPTIONS (ERRORS=50) 
LOAD DATA CHARACTERSET UTF8 
INFILE 'C:\Users\YourID\Downloads\US-Fixed-with-Satellite-Jun2020\fbd_us_with_satellite_jun2020_v1.utf8.csv' 
APPEND 
INTO TABLE "JUN2020" 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' AND '"'
TRAILING NULLCOLS
(
LogRecNo,
Provider_Id,
FRN,
ProviderName,
DBAName,
HoldingCompanyName,
HocoNum,
HocoFinal,
StateAbbr,
BlockCode,
TechCode,
Consumer,
MaxAdDown,
MaxAdUp,
Business,
MaxCIRDown,
MaxCIRUp
)
=================================

## wsl2にてデータをUTF8にコンバート(SJSでは途中でエラーが発生した)
cd /mnt/c/Users/YourID/Downloads/US-Fixed-with-Satellite-Jun2020
time iconv -f WINDOWS-31J -t UTF8 fbd_us_with_satellite_jun2020_v1.csv -o fbd_us_with_satellite_jun2020_v1.utf8.csv

real    8m50.756s
user    1m15.809s
sys     0m38.827s
## wsl2は以上

#sqlldrをつかってデータをインポート

sqlldr usbb/PassW0rd@192.168.255.44:1522/usbbpdb CONTROL=jun2020.ctl LOG=jun2020.log BAD=jun2020.bad skip=1
----
表"JUN2020":
  73874350 行は正常にロードされました。
  
#参考 インポート1850万件あたり約15分、約1時間で全件ロード
#使用機材:HDD 2TB, Intel Corei5 6c6t Mem 32GB, Windows10 Pro Workstation

データのインポートができたので早速、クエリを実行してみます。なお、フロントエンドは前述のように、SQL Developwerを使いました。
select maxaddown,provider_id,providername, count(*) from jun2020
	group by maxaddown, provider_id, providername
    order by count(*) desc;
結果は以下の通りですが、相変わらず衛星経由の通信が半数程占めているのは前回前々回と変わりがないようです。
今回は以上です。それでは。

コメント

このブログの人気の投稿

wsdd を使ってSamba サーバをネットワークに表示

Windows 10のアップデートで、セキュリティー対応のため、smbv1がデフォルトではインストールされなくなり、Samba serverがエクスプローラーのネットワークに表示されなくなってしまいました。そこで、いくつか方法を調べたのですが、linuxでwsdの実装がないか探したところ、 https://github.com/christgau/wsdd が、見つかりましたので、さっそくインストールしてみました。まだパッケージにはないようですが、インストール自身は簡単です。wsdd自体は以下のように取得し、linkを張っておきます。 cd /usr/local/bin/ sudo wget https://raw.githubusercontent.com/christgau/wsdd/master/src/wsdd.py sudo chmod 755 wsdd.py sudo ln -sf wsdd.py wsdd こちらのsambaサーバはDebianなので、/etc/systemd/system/wsdd.serviceは以下のようにしました。 [Unit] Description=Web Services Dynamic Discovery host daemon Requires=network-online.target After=network.target network-online.target multi-user.target [Service] Type=simple ExecStart=/usr/local/bin/wsdd -d MYDOMAIN [Install] WantedBy=multi-user.target wsdd -d MYDOMAINのところを、環境にあわせて書き換えてください。 次に、systemdに登録・起動テストを行います。 systemctl enable wsdd systemctl start wsdd 起動に成功すると、エクスプローラーのネットワークに表示されます。  なおこのwsddはpython3が必要です。一度試してみてください。SMBv1/CIFSを停止していても、大丈夫です。 cで書かれたほかのwsddの実装もあるようなので、いずれパッケージになるかもしれませ

Hyper-V Server2019にワークグループ環境下でWindows10(1809)から接続

Hyper-V server 2019に、ワークグループ環境にてWindows10(1809)から接続してみました。Windows10にHyper-V管理ツールがインストールされていることと、Hyper-V Serverをインストール済であることが前提です。以下、Hyper-V serverは名前がHyperVSV、アドレスは192.168.1.110としています。 まず、Hyper-V server上で、powershellを起動し、以下のコマンドを入力します。 Enable-WSManCredSSP -Role Server -Force 続いて、クライアントのWindows10のpowershell で以下のコマンドを入力します。 winrm quickconfig -Force Enable-WSManCredSSP -Role Client -DelegateComputer * -Force さらに、クライアントマシンで、gpedit(グループポリシーエディタ)を起動し、以下の要領でポリシーを設定します。 a. [コンピューターの構成]->[管理テンプレート]->[システム]->[資格情報の委任]->[NTLMのみのサーバー認証で新しい資格情報の委任を許可する] を有効にし、サーバを一覧に追加[表示...]ボタンをクリックして、「WSMAN/*」を追加 b. [コンピューターの構成]->[管理テンプレート]->[システム]->[資格情報の委任]->[NTLM のみのサーバー認証で保存された資格情報の委任を許可する] を有効にし、サーバを一覧に追加[表示...]ボタンをクリックして、「*」を追加 また、名前解決できるように、(notepadを管理者権限で実行し)C:\Windows\System32\Drivers\etc\hostsにサーバ名とIPアドレスの対を追加。 192.168.1.110 HyperVSV 最後に、Hyper-Vマネージャーを起動し、Windows10からHyper-V サーバに接続します。手順は以下の通りです。 「サーバーに接続」->コンピュータの選択->別のコンピューターに[HyperVSV]と入力し、[別のユーザーとして接続する

フレッツ光クロス:MAP-E ROUTER by Debian Box (iptables)

フレッツ光クロスがようやく開通したので、Debianにてrouterを構成し接続してみました。なお、プロバイダーを選ぶにあたっては、IPoE方式がそれぞれ異なるため検討したところ、IPoEでは、MAP-Eでもv6plusとocnバーチャルコネクトがあり、前者がポート数240なのに対し、後者は約4倍のポート数が使えるようなネットの情報をみて、OCNバーチャルコネクトを選択しました。(プロバイダーとしてはぷららです。なおDS-LiteはCE側でのNATではないので今回は見送りました。)そこで、OCN バーチャルコネクトをDebian(iptables)で実現するとどうなるかと思い、ネットの情報を頼りにしつつ、設定した次第です。 実際に試した結果、とりあえず通信できていますが、MAP-Eは本来マッピングルールをマップサーバから取得するはずなので、今回のやり方が正解とはいえませんし、仕様変更されると通信できなくなる可能性があります。あくまでも参考程度ですが、本稿をUPしてみました。 2023/03/16追記: こちら にゲームコンソールNAT越え(Nintendo Switch ナットタイプ A判定)対応版を投稿しました。 2023/03/28追記:※1の記述および3行無効化によりNAT越え(Nintendo Switch ナットタイプ B判定)できるようになりました。 構成は以下の通りです。 ルーターがDebianで回線がOCNバーチャルコネクトであること以外はなにも特別なところはない構成です。 さて、いきなり設定ですが、まず、割り当てられたプレフィックスを確認します。 確認は、 dhclient -6 -d -P enp2s0 とします。出力の中に 前略 RCV: | | X-- IAPREFIX 2400:4050:5c71:af00::/56 後略 このようにプレフィックスが表示されるので、その確認したプレフィックスを書き留めておきます。これを こちらで 入力します。すると、 CE: 2400:4050:5c71:af00:99:f171:c600:2f00 IPv4 アドレス: 153.241.113.198 ポート番号:(1776-1791 2800-2815 3824-3839) 4848-4863 5872-5887 6896-